在C语言中,可以通过以下步骤创建哈希表:
#define SIZE 10
typedef struct {
int data[SIZE];
int flags[SIZE];
} HashTable;
void initializeHashTable(HashTable* hashTable) {
int i;
for(i = 0; i < SIZE; i++) {
hashTable->data[i] = 0;
hashTable->flags[i] = 0;
}
}
int hashFunction(int key) {
return key % SIZE;
}
void insert(HashTable* hashTable, int key) {
int index = hashFunction(key);
while(hashTable->flags[index] != 0) {
index = (index + 1) % SIZE; // 线性探测法
}
hashTable->data[index] = key;
hashTable->flags[index] = 1;
}
int search(HashTable* hashTable, int key) {
int index = hashFunction(key);
while(hashTable->flags[index] != 0) {
if(hashTable->data[index] == key) {
return index;
}
index = (index + 1) % SIZE;
}
return -1; // 表示未找到
}
这样就可以创建一个简单的哈希表了。在实际应用中,可以根据需要进行扩容、删除操作等。