周立功来讲解哈希表的实现
40 unsigned char id[6];
41 int i;
42 hash_db_t hash_students;
43
44 hash_db_init(&hash_students, 250, 6, sizeof(student_t), (hash_func_t)db_id_to_idx);
45
46 for (i = 0; i < 100; i++) { // 添加100个学生的信息
47 student_info_generate(id, &stu); // 设置学生的信息,当前一随机数作为测试48 if (hash_db_search(&hash_students, id, &stu) == 0) { // 查找到已经存在该ID的学生记录
49 printf("该ID的记录已经存在!\n");
50 continue;
51 }52 printf("增加记录:ID : %02x%02x%02x%02x%02x%02x",id[0],id[1],id[2],id[3],id[4],id[5]);
53 printf("信息: %s %c %.2f %.2f\n", stu.name, stu.sex, stu.height, stu.weight);
54 if (hash_db_add(&hash_students, id, &stu) != 0) {
55 printf("添加失败");
56 }
57 }
5859 printf("查找ID为:%02x%02x%02x%02x%02x%02x的信息\n",id[0],id[1],id[2],id[3],id[4],id[5]);
60 if (hash_db_search(&hash_students, id, &stu) == 0) {
61 printf("学生信息: %s %c %.2f %.2f\n", stu.name, stu.sex, stu.height, stu.weight);
62 } else {
63 printf("未找到该ID的记录!\r\n");
64 }
65 hash_db_deinit(&hash_students);66 return 0;
67 }在这里,首先创建了一个哈希表,然后向其中添加了100个学生信息(以随机数的方式产生的),接着查找了ID对应的学生信息(这里的ID没有特别设置,即查找最后添加的学生记录),最后释放哈希表。
- 电源软启动的实用设计技巧(07-16)
- 周立功:动态分布内存——malloc()函数与calloc()函数(07-22)
- 周立功“程序设计与数据结构”:深度解剖动态分布内存的free()函数与realloc()函数(07-25)
- 周立功教你学程序设计技术:做好软件模块的分层设计,回调函数要这样写(07-30)
- 周立功教你学C语言编程:教你数组是如何保存指针的(07-31)
- 算法的泛化问题,这些坑你可能都经历过!|周立功教你学软件设计(08-01)