diff --git a/APP_Framework/Applications/app_test/test_hash/README.md b/APP_Framework/Applications/app_test/test_hash/README.md new file mode 100644 index 000000000..c9facdd94 --- /dev/null +++ b/APP_Framework/Applications/app_test/test_hash/README.md @@ -0,0 +1,60 @@ +# ##基于cortex-m3-emulator实现哈希表并测试验证## + +## 1. 简介 + +采用除留余数法构造哈希函数,冲突解决采用链地址法。例如如果具体的关键字列表为(19,14,23,01,68,20,84,27,55,11,10,79),则哈希函数为H(key)=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) + + + + +