⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hashtable.h

📁 多任务下的数据结构与算法的源码
💻 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 + -