📄 main.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -