c语言哈希表初始化
时间: 2023-07-29 16:11:32 浏览: 106
在C语言中,哈希表的初始化通常包括以下几个步骤:
1. 定义哈希表结构体,包括表头指针数组、表长、哈希函数等成员变量。
```
struct HashTable {
int size;
int count;
struct Node **head;
unsigned int (*hashFunc)(int);
};
```
2. 定义哈希表节点结构体。
```
struct Node {
int key;
int value;
struct Node *next;
};
```
3. 初始化哈希表结构体,包括表长、表头指针数组等成员变量。
```
struct HashTable *initHashTable(int size, unsigned int (*hashFunc)(int)) {
struct HashTable *hashTable = (struct HashTable *) malloc(sizeof(struct HashTable));
hashTable->size = size;
hashTable->count = 0;
hashTable->head = (struct Node **) calloc(size, sizeof(struct Node *));
hashTable->hashFunc = hashFunc;
return hashTable;
}
```
4. 实现哈希函数,将关键字映射到表头指针数组的某个位置。
```
unsigned int hash(int key) {
return (unsigned int) key % HASH_TABLE_SIZE;
}
```
5. 调用初始化函数,创建哈希表并返回表头指针。
```
struct HashTable *hashTable = initHashTable(HASH_TABLE_SIZE, hash);
```
以上代码仅供参考,实际使用时需要根据具体需求进行修改。
阅读全文