亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hashtable.cpp

?? 聯通的短信網關平臺。 sp 使用。 如果想自己用vc 開發短信業務
?? CPP
字號:
// HashTable.cpp: implementation of the CHashTable class.
//
//////////////////////////////////////////////////////////////////////

//#include "stdafx.h"
#include "HashTable.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CHashTable::CHashTable()
{
	m_nTableSize = 1000;//default 1000;
	m_pDataList = NULL;
	m_pDataList = new CTableData[m_nTableSize];
}

CHashTable::~CHashTable()
{
	DestoryHashTable();
}

void CHashTable::DestoryHashTable(void)
{
	if (m_pDataList != NULL)
	{
		for (unsigned long i=0; i<m_nTableSize; i++)
		{
			CTableData *pData = m_pDataList + i;
			
			CTableData *pBase = NULL;
			CTableData *pNext = NULL;
			
			while (pData->m_pNext != NULL)
			{
				pBase = pData->m_pNext;
				pNext = pBase;
				pData->m_pNext = NULL;
				
				while (pBase->m_pNext != NULL)
				{
					pNext = pBase->m_pNext;
					delete pBase;
					pBase = pNext;					
				}
				delete pBase;
			}
		}
		
		delete [] m_pDataList;
		m_pDataList = NULL;
		m_nTableSize = 0;
	}
}

unsigned long CHashTable::CreateHashKey(const char *s, unsigned size)
{
	unsigned long h = 0;
	unsigned long g;
	
	if (size == 0)
		size = m_nTableSize;
	
	while (*s) 
	{
		h = (h << 4) + *s++;
		if ((g = (h & 0xf0000000)) != 0) 
		{
			h ^= (g >> 24);
			h ^= g;
		}
	}
	return (h % size);
}

unsigned long CHashTable::SetHashSize(unsigned long nTableSize)
{
	if (m_pDataList != NULL)
	{
		DestoryHashTable();
	}

	m_nTableSize = nTableSize;

	m_pDataList = new CTableData[m_nTableSize];

	return m_nTableSize;
}


/*==================================	
	Insert Data into the table
	return the index
==================================*/ 
unsigned long CHashTable::InsData(char *pData)
{
	CTableData *pTemp = NULL;
	unsigned long nIndex = 0;
	nIndex = CreateHashKey(pData);
	pTemp = m_pDataList + nIndex;

	if (strlen((char *)&pTemp->m_cData) == 0)
	{
		pTemp->m_ulHashKey = nIndex;
		strcpy(pTemp->m_cData, pData);
	}
	else
	{
		while (pTemp->m_pNext != NULL)
		{
			//if find the pData, then return;
			/*
			if (strncmp(pTemp->m_cData, pData, strlen(pTemp->m_cData)) == 0)
			{
				return nIndex;
			}
			*/
			char *p1 = NULL, *p2 = NULL;
			p1 = pTemp->m_cData;
			p2 = pData;
			while (*p1 != '\0')
			{
				if (*p1 != *p2)
					break;
				p1++;
				p2++;
			}
			if (*p1 == *p2)//find
				return nIndex;

			pTemp = pTemp->m_pNext;
		}

		CTableData *pAdd = new CTableData();
		pAdd->m_ulHashKey = nIndex;
		strcpy(pAdd->m_cData, pData);

		pTemp->m_pNext = pAdd;
	}

	return nIndex;
}

/*==================================	
	Locate the data in the Table
	return true if it is exist
==================================*/
bool CHashTable::LocateData(char *pData, int nLen)
{
	CTableData *pTemp = NULL;
	unsigned long nIndex = 0;
	
	nIndex = CreateHashKey(pData);
	pTemp = m_pDataList + nIndex;

	if (strlen((char *)&pTemp->m_cData) == 0)
		return false;

	do 
	{
		if (pTemp->DatanCmp(pData, nLen))
			return true;

		pTemp = pTemp->m_pNext;
		
	} while(pTemp != NULL);

	return false;
}

/*===================================	
	==Delete the data in the Table==
	==return true if del succeed====
====================================*/
bool CHashTable::DelData(char *pData, int nLen)
{
	CTableData *pTemp = NULL;
	CTableData *pBase = NULL;
	unsigned long nIndex = 0;
	
	nIndex = CreateHashKey(pData);
	pTemp = m_pDataList + nIndex;
	
	if (strlen((char *)&pTemp->m_cData) == 0)
		return false;

	pBase = pTemp;
	
	bool bBaseNode = true;
	do 
	{
		if (pTemp->DatanCmp(pData, nLen))
		{
			if (bBaseNode)
			{
				pTemp->m_ulHashKey = 0;
				pTemp->m_pNext = NULL;
				memset(&pTemp->m_cData, 0, sizeof(pTemp->m_cData));
			}
			else
			{
				pBase->m_pNext = pTemp->m_pNext;
				delete pTemp;
			}
			return true;
		}

		pBase = pTemp;
		
		pTemp = pTemp->m_pNext;
		bBaseNode = false;
		
	} while(pTemp != NULL);
	
	return false;
}



//CTableData 
CTableData::CTableData()
{
	memset(&m_cData, 0, sizeof(m_cData));
	m_ulHashKey = 0;
	m_pNext = NULL;
}

CTableData::~CTableData()
{

}

bool CTableData::DataCmp(char *pData)
{
	int nLen = strlen(m_cData);
	return DatanCmp(pData, nLen);
}

bool CTableData::DatanCmp(char *pData, int nLen)
{
	if (nLen == 0)
		return false;
	
	if (strncmp((const char *)&m_cData, pData, nLen) == 0)
		return true;
	else
		return false;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区视频在线| 青青国产91久久久久久| 激情国产一区二区| 欧美国产日韩亚洲一区| 99re这里都是精品| 日韩电影在线一区| 中文字幕在线观看不卡视频| 欧美男同性恋视频网站| 高清不卡一区二区在线| 视频一区免费在线观看| 久久精品无码一区二区三区| 在线免费不卡电影| 国产剧情一区二区| 日韩高清在线电影| 久久精品免费观看| 亚洲成年人网站在线观看| 中日韩av电影| 26uuu国产日韩综合| 欧美福利视频一区| 91福利视频网站| 99久久亚洲一区二区三区青草| av一区二区三区在线| 极品美女销魂一区二区三区| 亚洲国产精品久久不卡毛片| 中文字幕亚洲成人| 一区二区三区国产精华| 日日嗨av一区二区三区四区| 国产资源精品在线观看| www.欧美日韩| 欧美日韩另类一区| 久久综合久久鬼色| 亚洲美女视频在线| 亚洲三级免费电影| 国产精品视频你懂的| 一区二区免费看| 国产在线精品视频| 久久成人麻豆午夜电影| 99精品久久99久久久久| 欧美久久一二三四区| 国产亚洲成年网址在线观看| 亚洲综合色丁香婷婷六月图片| 一色桃子久久精品亚洲| 免费人成网站在线观看欧美高清| 不卡视频一二三| 色综合久久天天| 日本精品视频一区二区三区| 日韩丝袜情趣美女图片| 久久噜噜亚洲综合| 欧美国产乱子伦| 蜜桃在线一区二区三区| 奇米影视7777精品一区二区| 99精品一区二区| 久久久久一区二区三区四区| 亚洲mv在线观看| 91偷拍与自偷拍精品| 色噜噜狠狠色综合中国| 久久久久久久久久久久久久久99| 日韩—二三区免费观看av| 99久久久精品| 中文一区一区三区高中清不卡| 精品亚洲国产成人av制服丝袜| 欧美日韩一级二级| 日韩天堂在线观看| 午夜精品久久久久久久久久久| 蜜臀av一区二区| 69堂精品视频| 久久你懂得1024| 国精产品一区一区三区mba视频| 欧美精品乱码久久久久久| 玉足女爽爽91| 91麻豆精品视频| 亚洲精品视频免费观看| av成人动漫在线观看| 国产欧美一区二区精品久导航| 亚洲欧洲在线观看av| 国产高清在线观看免费不卡| 在线观看日韩一区| 亚洲综合在线免费观看| 日本道在线观看一区二区| 亚洲色图制服诱惑 | 婷婷综合五月天| 欧美中文字幕久久| 亚洲一级不卡视频| 欧美剧情片在线观看| 日本不卡免费在线视频| 日韩欧美亚洲国产另类| 国产精品免费人成网站| jizzjizzjizz欧美| 亚洲情趣在线观看| 欧美日韩国产经典色站一区二区三区| 夜色激情一区二区| 7799精品视频| 国产一区二区日韩精品| 国产日韩三级在线| 日本二三区不卡| 日韩av不卡在线观看| 精品伦理精品一区| 亚洲午夜羞羞片| 欧美一区二区三区免费观看视频| 国产精品国产三级国产专播品爱网| 日韩和欧美一区二区| 精品区一区二区| 成人高清视频免费观看| 亚洲午夜精品久久久久久久久| 欧美一区二区三区四区五区| 久久精品国产亚洲高清剧情介绍| 国产日产精品1区| 一本大道久久精品懂色aⅴ| 亚洲国产日韩a在线播放| 欧美成人三级在线| 91在线国产观看| 精品一区二区三区蜜桃| 亚洲婷婷在线视频| 欧美高清在线精品一区| 欧美综合久久久| 国产精品资源站在线| 一区二区三区欧美| 国产网站一区二区| 欧美日韩的一区二区| 免费看日韩a级影片| 精品国产精品一区二区夜夜嗨| 免费黄网站欧美| 国产精品免费久久久久| 欧美一二三区在线| 在线观看国产一区二区| 国产成人激情av| 免费在线观看一区二区三区| 国产精品福利一区二区三区| 久久综合成人精品亚洲另类欧美| 一本大道久久a久久综合| 极品美女销魂一区二区三区免费| 亚洲第一搞黄网站| 亚洲欧洲制服丝袜| 国产午夜精品久久久久久久 | 97久久人人超碰| 日韩成人伦理电影在线观看| 国产精品丝袜在线| 欧美mv日韩mv国产网站app| 欧美日韩精品高清| 9色porny自拍视频一区二区| 国产在线不卡一卡二卡三卡四卡| 亚洲国产成人av网| 亚洲与欧洲av电影| 国产精品久久久久久久岛一牛影视 | 欧美日韩精品专区| 91美女片黄在线观看91美女| 成人黄色在线网站| 国产成人精品网址| 极品少妇xxxx精品少妇| 极品少妇xxxx精品少妇| 国产在线看一区| 国产精品一区三区| 国产麻豆精品在线观看| 国产麻豆成人精品| 国产成人精品亚洲日本在线桃色 | 色94色欧美sute亚洲线路二| 99精品视频在线免费观看| av中文字幕在线不卡| 成人国产在线观看| 99久久er热在这里只有精品66| 不卡一区二区中文字幕| 99精品视频一区二区三区| 在线亚洲欧美专区二区| 欧美视频在线播放| 一区二区在线看| 亚洲自拍都市欧美小说| 亚洲一级二级在线| 免费不卡在线观看| 国产一区二区电影| 波波电影院一区二区三区| 不卡av在线网| 欧美日韩另类国产亚洲欧美一级| 欧美一区二区三区四区视频| 久久婷婷色综合| 亚洲同性gay激情无套| 午夜视频在线观看一区二区| 精品一区二区在线观看| av亚洲精华国产精华精华| 欧美综合欧美视频| 欧美岛国在线观看| 国产精品妹子av| 丝袜美腿亚洲一区| 国产91精品久久久久久久网曝门 | 欧美日本一区二区在线观看| 精品少妇一区二区三区日产乱码| 久久久www免费人成精品| 亚洲少妇30p| 经典三级视频一区| 91成人看片片| 欧美精品一区二区三区蜜桃视频 | 国产日韩欧美精品电影三级在线| 亚洲黄色在线视频| 国产一区二区按摩在线观看| 色婷婷亚洲精品| 久久精品视频在线看| 亚洲3atv精品一区二区三区| 国产91清纯白嫩初高中在线观看| 欧美日韩视频第一区| 欧美激情一区二区三区四区 | 亚洲欧美一区二区三区国产精品 |