微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 周立功来讲解哈希表的实现

周立功来讲解哈希表的实现

时间:08-30 来源:周立功单片机 点击:

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        }

58

59        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没有特别设置,即查找最后添加的学生记录),最后释放哈希表。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top