hashtable.h

来自「多任务下的数据结构与算法的源码」· C头文件 代码 · 共 67 行

H
67
字号
/*
 * 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 + =
减小字号Ctrl + -
显示快捷键?