📄 hashtable.h
字号:
/*
* Copyright (c) 2000-2008
* Author: Weiming Zhou
*
* Permission to use, copy, modify, distribute and sell this software
* and its documentation for any purpose is hereby granted without fee,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation.
*/
#ifndef __HASHTABLE_H__
#define __HASHTABLE_H__
#ifdef __cplusplus
extern "C" {
#endif
#define HASHTABLE_SIZE 32767
#define MAX_SEARCH_DEEP 30
typedef struct HASHTABLE {
SINGLENODE **ppBucket; /* 索引表指针 */
UINT uBucketCount; /* 索引表的大小. */
UINT uNodeCount; /* 表中的实际节点个数. */
UINT uCurBucketNo; /* 当前要执行的Bucket序号 */
SINGLENODE *pCurEntry; /* 当前bucket中的下一个要执行的节点条目 */
} HASHTABLE;
/*** Hash Table operation functions ***/
HASHTABLE * HashTable_Create(UINT uBucketCount);
void HashTable_Destroy(HASHTABLE *pTable,
DESTROYFUNC DestroyFunc );
INT HashTable_Insert( HASHTABLE *pTable,
void *pData,
HASHFUNC HashFunc);
void * HashTable_Find(HASHTABLE *pTable,
void *pData,
HASHFUNC HashFunc,
COMPAREFUNC CompareFunc);
INT HashTable_Delete(HASHTABLE *pTable,
void *pData,
HASHFUNC HashFunc,
COMPAREFUNC CompareFunc,
DESTROYFUNC DataDestroyFunc );
void HashTable_EnumBegin(HASHTABLE *pTable);
void * HashTable_EnumNext(HASHTABLE *pTable);
#ifdef __cplusplus
}
#endif
#endif /* __HASHTABLE_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -