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

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

?? hthash.c

?? firtext搜索引擎源碼
?? C
字號:
/***	HASH TABLE CLASS****	This HashTable class implements a simple hash table to keep**	objects associated with key words.**** Author:**	JP	John Punin***/#include "wwwsys.h"#include "HTUtils.h"#include "HTString.h"#include "HTHash.h"/*(  Creation and Deletion Methods)These methods create and deletes a Hash Table*/PUBLIC HTHashtable * HTHashtable_new (int size){    HTHashtable *newHashtable;    int c = size > 0 ? size : HT_L_HASH_SIZE;    if ((newHashtable = (HTHashtable  *) HT_CALLOC(1, sizeof (HTHashtable))) == NULL)        HT_OUTOFMEM("HTHashtable_new");    if((newHashtable->table = (void **) HT_CALLOC(c, sizeof (void *))) == NULL)	HT_OUTOFMEM("HTHashtable_new");    newHashtable->count = 0;    newHashtable->size = c;    return newHashtable;}PUBLIC BOOL HTHashtable_delete (HTHashtable *me){    if (me) {	int i;	for(i = 0; i< me->size; i++) {	    HTList * l = (HTList *)me->table[i];	    if (l) {		HTList *cur = l;		keynode *kn;		while ((kn = (keynode *) HTList_nextObject(cur))) {		    HT_FREE(kn->key);		    HT_FREE(kn);		}		HTList_delete(l);	    }	}        HT_FREE(me->table);	HT_FREE(me);	return YES;    }    return NO;}PRIVATE int hash_number (const char *key, int size){    int hash = 0;    if (key) {	const char * ptr = key;	for(; *ptr; ptr++)	    hash = (int) ((hash*3 + (*(unsigned char*)ptr)) % size);    }    return hash;}/*(  Add an Element to a HashTable)*/PUBLIC BOOL HTHashtable_addObject (HTHashtable *me, const char *key,				   void *newObject){    if(me) {	int size = me->size;	int i = hash_number(key,size);	HTList *l = (HTList *)me->table[i];	keynode *kn;	if(!l)	    l = me->table[i] = HTList_new();	if ((kn = (keynode  *) HT_CALLOC(1, sizeof (keynode))) == NULL)	    HT_OUTOFMEM("HTHashtable_addObject");	StrAllocCopy(kn->key,key);	kn->object = newObject;	HTList_addObject(l,kn);	me->count++;	return YES;    }    return NO;}/*(  Remove an Element from the HashTable)*/PUBLIC BOOL HTHashtable_removeObject (HTHashtable *me, const char *key){    if(me) {	int size = me->size;	int i = hash_number(key,size);	HTList *l = (HTList *)me->table[i];	if(l) {	    HTList *cur = l;	    keynode *kn;	    while ((kn = (keynode *) HTList_nextObject(cur))) {		if(!strcmp(key,kn->key)) {		    HTList_removeObject(l,kn);		    me->count--;		    return YES;		}	    }	}    }    return NO;}/*(  Search for an Element in a Hash Table)*/PUBLIC void *HTHashtable_object (HTHashtable * me, const char *key){    if(me) {	int size = me->size;	int i = hash_number(key,size);	HTList * l = (HTList *)me->table[i];	if (l) {	    HTList *cur = l;	    keynode *kn;	    while ((kn = (keynode *) HTList_nextObject(cur))) {		if(!strcmp(key,kn->key))		    return kn->object;	    }	}    }    return NULL;}/*(  Size of a Hash Table)*/PUBLIC int HTHashtable_count (HTHashtable *me){    if(me)	return me->count;    return -1;}/*(   Walk all Elements in the HashTable)*/PUBLIC BOOL HTHashtable_walk (HTHashtable *me,			      int (*walkFunc)(HTHashtable *,char *, void *)){    if(me) {	int i, j;	for(i = 0; i< me->size; i++) {	    HTList *l = (HTList *)me->table[i];	    if(l) {		HTList *cur = l;		keynode *kn, *nextkn;		for(kn = (keynode *)HTList_nextObject(cur); kn; kn = nextkn) {		    j = walkFunc(me, kn->key, kn->object);		    if(j == 0)			return YES;		    nextkn = (keynode *)HTList_nextObject(cur);		    if (j < 0) {			HTList_removeObject(l, kn);			me->count--;		    }		}	    }	}	return YES;    }    return NO;}/*(   Extract in a dynamic array all keys of the Hash Table)*/PUBLIC HTArray * HTHashtable_keys (HTHashtable *me){    if(me) {	HTArray *keys = HTArray_new(me->count);	int i;    	for(i = 0; i< me->size; i++) {	    HTList * l = (HTList *)me->table[i];	    if (l) {		HTList *cur = l;		keynode *kn;		while ((kn = (keynode *) HTList_nextObject(cur))) {		    char * nkey = NULL;		    StrAllocCopy(nkey,kn->key);		    HTArray_addObject(keys,nkey);		}	    }	}	return keys;    }    return NULL;}/*(   Print the keys of the Hash Table)*/PUBLIC void HTHashtable_print (HTHashtable *me){    HTArray *keys = HTHashtable_keys(me);    int i;    HTPrint("Printing Hash Table of size %d\n", HTArray_size(keys));    for(i = 0; i< HTArray_size(keys); i++) {	HTPrint("Key %d %s\n",i,HTArray_data(keys)[i]);    }    for(i = 0; i< HTArray_size(keys); i++) {	HT_FREE(HTArray_data(keys)[i]);    }    HTArray_delete(keys);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
卡一卡二国产精品 | 麻豆精品一区二区| 国产一区二区影院| 欧美性做爰猛烈叫床潮| 久久久久久免费网| 天天综合网天天综合色| 成人av网站免费观看| 日韩欧美国产一区二区三区| 亚洲综合丁香婷婷六月香| 国产高清在线精品| 日韩欧美国产精品一区| 亚洲午夜三级在线| 99国产精品久| 中文字幕欧美国产| 国产精品主播直播| 欧美一级黄色大片| 日本不卡1234视频| 欧美高清性hdvideosex| 亚洲国产视频直播| 色哟哟精品一区| 中文字幕一区二区三区色视频| 九色综合狠狠综合久久| 日韩一区二区在线看片| 午夜av一区二区三区| 欧美日韩精品一区视频| 亚洲激情一二三区| 91亚洲精品一区二区乱码| 国产精品久久午夜夜伦鲁鲁| 成人免费视频播放| 国产精品午夜在线| 成人午夜又粗又硬又大| 国产欧美日韩视频一区二区| 国产精品1区二区.| 国产亚洲精品免费| 成人综合在线视频| 日韩美女视频19| 色婷婷综合在线| 亚洲综合免费观看高清完整版| 色天天综合久久久久综合片| 亚洲美女免费在线| 在线视频欧美区| 亚洲一区中文在线| 5858s免费视频成人| 日本欧美一区二区三区| 久久综合视频网| 国产69精品久久久久777| 国产精品国产精品国产专区不蜜| 不卡欧美aaaaa| 亚洲裸体在线观看| 欧美人妖巨大在线| 精品在线免费视频| 国产精品视频一区二区三区不卡| 91网站在线观看视频| 亚洲一区二区三区中文字幕 | 一区二区激情视频| 欧美日韩午夜在线| 久久aⅴ国产欧美74aaa| 欧美激情一区在线观看| 99精品视频一区二区| 亚洲二区在线观看| 久久亚洲二区三区| 欧美这里有精品| 美女脱光内衣内裤视频久久影院| 国产午夜精品在线观看| 91黄色免费看| 国模套图日韩精品一区二区 | 久久久久久久久久电影| 91视视频在线观看入口直接观看www | 在线观看日韩精品| 日韩午夜中文字幕| 国产福利91精品| 中文字幕在线不卡一区二区三区| 精品国产亚洲在线| 亚洲影院理伦片| 久久新电视剧免费观看| 在线观看三级视频欧美| 国内成人免费视频| 亚洲在线观看免费视频| 久久久综合激的五月天| 欧美日韩亚洲综合一区二区三区 | 成人av电影在线观看| 日韩av不卡一区二区| 中文字幕在线一区| 精品国产一区二区三区四区四 | 成人午夜激情影院| 奇米影视一区二区三区小说| 中文字幕亚洲不卡| 久久女同精品一区二区| 正在播放一区二区| 色婷婷av久久久久久久| 国产一区二区三区免费看| 亚洲成av人片在线| 亚洲情趣在线观看| 亚洲国产精品成人综合色在线婷婷| 欧美一区二区国产| 欧美亚洲综合另类| 91麻豆精品视频| 国产99一区视频免费| 精品一区二区三区在线视频| 亚洲综合无码一区二区| 亚洲免费视频成人| 中文字幕综合网| 国产精品久久久一本精品 | 欧美一区二区三区四区高清| 欧美无砖砖区免费| 91视频免费播放| av影院午夜一区| 成人中文字幕在线| 国产成人夜色高潮福利影视| 久久se精品一区精品二区| 青青草国产成人av片免费| 午夜精品久久久久久久99水蜜桃| 亚洲美女区一区| 一级做a爱片久久| 亚洲三级在线看| 亚洲伦理在线精品| 一区二区三区免费看视频| 亚洲免费成人av| 亚洲人午夜精品天堂一二香蕉| 亚洲人成小说网站色在线| 亚洲欧美日韩一区| 一区二区三区精品视频在线| 粉嫩久久99精品久久久久久夜| 成人国产一区二区三区精品| 国产视频不卡一区| 亚洲三级电影网站| 麻豆精品视频在线观看视频| 色综合久久久久久久| 久久久久久免费| 日本欧美在线看| 国产一区二区三区久久久| 国产精品第一页第二页第三页| 欧美妇女性影城| 精品电影一区二区| 国产精品素人视频| 一区av在线播放| 久久久久久久综合| 国产麻豆一精品一av一免费 | 777欧美精品| 精品欧美一区二区在线观看 | 99久久99久久精品免费观看| 在线观看亚洲a| 91精品国产色综合久久不卡电影| 日韩免费成人网| 国产精品午夜久久| 综合中文字幕亚洲| 国产 日韩 欧美大片| 色婷婷av一区二区三区软件| 在线观看91精品国产麻豆| 久久久久久亚洲综合| 亚洲影视在线播放| 国产一区二区三区在线观看免费视频 | 国产一区福利在线| 一本色道久久综合狠狠躁的推荐 | 蜜臂av日日欢夜夜爽一区| 国产电影一区二区三区| 91久久人澡人人添人人爽欧美 | 亚洲美女免费视频| 极品瑜伽女神91| 在线观看网站黄不卡| 精品国产乱码久久久久久1区2区 | 国产片一区二区三区| 一区二区免费视频| 国产在线不卡一卡二卡三卡四卡| 在线中文字幕一区| 国产欧美精品一区二区色综合朱莉| 一区二区免费看| 成人av网站免费| 精品国产成人系列| 午夜精品在线看| www.欧美亚洲| 精品国产一区a| 日日摸夜夜添夜夜添国产精品 | 国产一区免费电影| 欧美三级电影精品| 中文字幕一区二区三区在线不卡| 久久99蜜桃精品| 欧美猛男超大videosgay| 中文字幕一区二区三区在线观看| 激情伊人五月天久久综合| 欧洲中文字幕精品| 亚洲人妖av一区二区| 丰满岳乱妇一区二区三区| 精品999在线播放| 日韩电影免费在线观看网站| 欧美性猛片aaaaaaa做受| 亚洲精品网站在线观看| 99精品视频在线免费观看| 欧美激情一区三区| 国产美女久久久久| 精品国产sm最大网站| 捆绑变态av一区二区三区| 欧美一级高清片| 日本午夜精品一区二区三区电影| 欧美性受极品xxxx喷水| 亚洲激情自拍视频| 欧美日韩精品电影| 亚洲第一狼人社区| 精品视频1区2区3区| 亚洲午夜精品网|