main.c

来自「hash表算法」· C语言 代码 · 共 60 行

C
60
字号
#include <stdio.h>#include "hash.h"int test_hash_key(KeyType key)//gen H(key);{	int hash = 0;	int a = 378551;	int b = 68559;	while(*key) {		hash = hash * a + *key;			a *= b;		key ++;	}		return hash & 0x7fffffff;}int test_key_equal(KeyType key1, KeyType key2){	return !strcmp(key1, key2);//key1 = key2 return 0,else return 1;}int test_print(KeyType key, DataType data){	printf("num: %d\t | age: %d\t key: %s\n", data.num, data.age, key);}int main(int argc, char **argv){	hash_table tl;	int i;	DataType stu[10];	DataType invalid;	DataType result;		invalid.age = -1;	invalid.num = -1;	char *name[] = {"yuqiang", "zhangyan", "zhangguowei", "yuhongchang", "wangchibo", "doufubin", "zouhongseng", "xuewengtain", "wangxiaofei", "libaizhang"};		hash_init(&tl, 10);	for (i = 0; i  < 10; i ++) {		stu[i].num = i;		stu[i].age = i + 20;				hash_insert(&tl, name[i], stu[i], test_hash_key, test_key_equal);	}		hash_for_each(&tl, test_print);	printf("===================== search ===================\n");		result = hash_search(&tl, "yuhongchang", test_hash_key, test_key_equal, invalid);	printf("search result, num : %d,  age : %d \n", result.num, result.age);	hash_clear(&tl);	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?