在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; // 表示未找到
}
這樣就可以創建一個簡單的哈希表了。在實際應用中,可以根據需要進行擴容、刪除操作等。