C++哈希表求模代码并遍历寻找
时间: 2024-05-14 14:16:29 浏览: 84
下面是一个使用哈希表求模的示例代码,它可以插入整数到哈希表中,并通过哈希表遍历函数查找特定的值:
```c
#include <stdio.h>
#include <stdlib.h>
#define TABLE_SIZE 10
typedef struct HashNode {
int data;
struct HashNode* next;
} HashNode;
typedef struct {
HashNode* buckets[TABLE_SIZE];
} HashTable;
int hash(int data) {
return data % TABLE_SIZE;
}
void insert(HashTable* table, int data) {
int index = hash(data);
HashNode* node = (HashNode*)malloc(sizeof(HashNode));
node->data = data;
node->next = table->buckets[index];
table->buckets[index] = node;
}
int find(HashTable* table, int data) {
int index = hash(data);
HashNode* node = table->buckets[index];
while (node != NULL) {
if (node->data == data) {
return 1;
}
node = node->next;
}
return 0;
}
void traverse(HashTable* table) {
for (int i = 0; i < TABLE_SIZE; i++) {
HashNode* node = table->buckets[i];
printf("Bucket %d:", i);
while (node != NULL) {
printf(" %d", node->data);
node = node->next;
}
printf("\n");
}
}
int main() {
HashTable table = { 0 };
insert(&table, 5);
insert(&table, 15);
insert(&table, 25);
insert(&table, 35);
traverse(&table);
printf("Find 15: %d\n", find(&table, 15));
printf("Find 20: %d\n", find(&table, 20));
return 0;
}
```
这个示例代码创建了一个大小为10的哈希表,并使用求模函数作为哈希函数。它可以插入整数到哈希表中,并通过哈希表遍历函数遍历哈希表。最后,它使用查找函数查找特定的值。
阅读全文