This commit is contained in:
zyj879580 2023-06-23 14:07:17 +08:00
parent a09723fcef
commit 09c866e878
1 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,60 @@
# ##基于cortex-m3-emulator实现哈希表并测试验证##
## 1. 简介
采用除留余数法构造哈希函数冲突解决采用链地址法。例如如果具体的关键字列表为19,14,23,01,68,20,84,27,55,11,10,79则哈希函数为Hkey=key MOD 13。哈希造表完成后进行查找时首先是根据哈希函数找到关键字的位置链然后在该链中进行搜索如果存在和关键字值相同的值则查找成功否则若到链表尾部仍未找到则该关键字不存在。
![1](./1.png)
## 2. 数据结构设计说明
![2](./2.png)
采用一维数组存储所有链节点,哈希表每个链节点包含该节点存储的关键字和下一个节点指针。
## 3. 测试程序说明
测试函数为TestHash已经在makefile和kconfig注册具体使用为TestHash输入的第一个整数代表关键字个数之后每输入一个关键字需要回车一次输入完毕后会打印构建好的哈希链表。
## 4. 运行结果(##需结合运行测试截图按步骤说明##
##### 测试样例一: #####
输入:(每个数字输入后都需要回车,且由于测试特性,每次测试均需要重启模拟器,否则会在原有的表基础上新增)
TeshHash
1 2
输出:
![test1](./test1.png)
##### 测试样例二: #####
输入:
TestHash
4 1 1 3 5
输出:
![test2](./test2.png)
##### 测试样例三: #####
输入:
TestHash
12 3 3 23 12 45 3 45 45 23 534 23 8
输出:
![test3](./test3.png)