⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 hash表算法
💻 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 + -