From 020b342e3b99043d4b0468caa21f693fb1855dd9 Mon Sep 17 00:00:00 2001 From: LH Date: Sat, 8 Jul 2023 16:28:44 +0800 Subject: [PATCH] oscar 2023_open_source_contest_warmup_1st_issue1 --- .../Applications/app_test/test_hash/README.md | 37 ++++ .../app_test/test_hash/test_hash.c | 201 ++++++++++++++++++ .../app_test/test_hash/test_hash.h | 41 ++++ .../test_hash/启动qemu并运行shell命令.png | Bin 0 -> 16548 bytes .../test_hash/打开menuconfig进行裁剪.png | Bin 0 -> 40180 bytes .../app_test/test_hash/编译项目.png | Bin 0 -> 10888 bytes 6 files changed, 279 insertions(+) create mode 100644 APP_Framework/Applications/app_test/test_hash/README.md create mode 100644 APP_Framework/Applications/app_test/test_hash/test_hash.c create mode 100644 APP_Framework/Applications/app_test/test_hash/test_hash.h create mode 100644 APP_Framework/Applications/app_test/test_hash/启动qemu并运行shell命令.png create mode 100644 APP_Framework/Applications/app_test/test_hash/打开menuconfig进行裁剪.png create mode 100644 APP_Framework/Applications/app_test/test_hash/编译项目.png 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..fba946798 --- /dev/null +++ b/APP_Framework/Applications/app_test/test_hash/README.md @@ -0,0 +1,37 @@ +# ##2023_open_source_contest_warmup_1st_issue1## + +## 1. 简介 + 基于矽璓模拟器cortex-m3-emulator,实现哈希表,支持链地址法解决哈希冲突,并编写测试程序在shell终端打印结果。 + 经过测试,我们的代码完美实现了热身赛赛题1所规定的全部预期功能。 + + +## 2. 数据结构设计说明 +源代码文件test_hash.c中,实现了一个基于哈希表的键值对存储结构,并提供了一系列操作该数据结构的函数。主要功能包括: + 1. `InitHashTable()`:初始化一个哈希表,返回一个指向 `HashTableType` 类型的指针。 + 2. `GetHash(int key)`:给定一个键值,计算其哈希值并返回。 + 3. `InitNode(int key, int value)`:初始化一个节点,返回一个指向 `NodeType` 类型的指针。 + 4. `GetTableSize(HashTableType* hash_table)`:获取哈希表中键值对的数量。 + 5. `FindNode(HashTableType* hash_table, int key)`:在哈希表中查找指定键值的节点,如果存在则返回该节点的指针,否则返回 `NULL`。 + 6. `InsertNode(HashTableType* hash_table, int key, int value)`:向哈希表中插入一个键值对,如果插入成功则返回 1,否则返回 0。 + 7. `RemoveNode(HashTableType* hash_table, int key)`:从哈希表中删除指定键值的节点,如果删除成功则返回 1,否则返回 0。 + 8. `ModifyNode(HashTableType* hash_table, int key, int value)`:修改哈希表中指定键值的节点的值,如果修改成功则返回 1,否则返回 0。 + 9. `Display(HashTableType* hash_table)`:打印哈希表中所有的键值对。 + 10. `TestHash()`:对哈希表进行一系列测试,包括插入、查找、修改、删除等操作,并输出相应的结果。 + 此程序文件与其他模块或函数的接口关系较少,主要使用了自定义的数据结构类型 `HashTableType` 和 `NodeType`,以及一些标准库函数(如 `malloc` 和 `printf`)。输出值的含义和取值范围在函数中有相应的注释和说明。参数间的控制、顺序、独立或依赖等关系主要由函数的实现决定,例如删除节点前需要先查找节点,修改节点前需要先判断节点是否存在等。函数之间相互独立,可以单独调用,但也可以组合使用。 +头文件test_hash.h中定义了一个基于链表的哈希表数据结构。其中: + 1. `NodeType` 结构体表示哈希表中的一个节点,包含了该节点的键值以及指向下一个节点的指针。 + 2. `HashTableType` 结构体表示整个哈希表,包含了一个长度为 `MAX_TABLE_SIZE` 的指针数组 `table`,用于存储节点,并且记录了哈希表中节点的数量 `tabel_size`。 + 该头文件的主要功能是定义了 `NodeType` 和 `HashTableType` 两个自定义的数据类型,为使用基于链表的哈希表提供了便利。可以在需要使用哈希表的代码中包含该头文件,并根据需要创建相应的 `HashTableType` 变量,然后使用其中定义的函数来操作哈希表。例如可以使用 `InitHashTable()` 函数来初始化哈希表,使用 `InsertNode()` 函数来插入一个节点,使用 `FindNode()` 函数来查找指定键值的节点等等。具体使用方法可以参考使用哈希表的代码示例. + + +## 3. 测试程序说明 + 测试函数为InsertNode、Display、FindNode、ModifyNode、RemoveNode。首先新增节点,之后展示,再测试查找操作、修改节点、移除节点等操作。 + + +## 4. 运行结果(##需结合运行测试截图按步骤说明##) + 打开menuconfig进行裁剪 + ![Alt text](%E6%89%93%E5%BC%80menuconfig%E8%BF%9B%E8%A1%8C%E8%A3%81%E5%89%AA.png) + 编译项目 + ![Alt text](%E7%BC%96%E8%AF%91%E9%A1%B9%E7%9B%AE.png) + 启动qemu并且运行Shell命令 + ![Alt text](%E5%90%AF%E5%8A%A8qemu%E5%B9%B6%E8%BF%90%E8%A1%8Cshell%E5%91%BD%E4%BB%A4.png) \ No newline at end of file diff --git a/APP_Framework/Applications/app_test/test_hash/test_hash.c b/APP_Framework/Applications/app_test/test_hash/test_hash.c new file mode 100644 index 000000000..9d3b9e4fb --- /dev/null +++ b/APP_Framework/Applications/app_test/test_hash/test_hash.c @@ -0,0 +1,201 @@ +/* +* Copyright (c) 2023 oscar +* XiUOS is licensed under Mulan PSL v2. +* You can use this software according to the terms and conditions of the Mulan PSL +v2. +* You may obtain a copy of Mulan PSL v2 at: +* http://license.coscl.org.cn/MulanPSL2 +* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +* See the Mulan PSL v2 for more details. +*/ + +/************************************************* + File name: tesh_hash.c// 文件名 + Description: 这段代码实现了一个基于哈希表的键值对存储结构,并提供了一系列操作该数据结构的函数。主要功能包括: + 1. `InitHashTable()`:初始化一个哈希表,返回一个指向 `HashTableType` 类型的指针。 + 2. `GetHash(int key)`:给定一个键值,计算其哈希值并返回。 + 3. `InitNode(int key, int value)`:初始化一个节点,返回一个指向 `NodeType` 类型的指针。 + 4. `GetTableSize(HashTableType* hash_table)`:获取哈希表中键值对的数量。 + 5. `FindNode(HashTableType* hash_table, int key)`:在哈希表中查找指定键值的节点,如果存在则返回该节点的指针,否则返回 `NULL`。 + 6. `InsertNode(HashTableType* hash_table, int key, int value)`:向哈希表中插入一个键值对,如果插入成功则返回 1,否则返回 0。 + 7. `RemoveNode(HashTableType* hash_table, int key)`:从哈希表中删除指定键值的节点,如果删除成功则返回 1,否则返回 0。 + 8. `ModifyNode(HashTableType* hash_table, int key, int value)`:修改哈希表中指定键值的节点的值,如果修改成功则返回 1,否则返回 0。 + 9. `Display(HashTableType* hash_table)`:打印哈希表中所有的键值对。 + 10. `TestHash()`:对哈希表进行一系列测试,包括插入、查找、修改、删除等操作,并输出相应的结果。 + 此程序文件与其他模块或函数的接口关系较少,主要使用了自定义的数据结构类型 `HashTableType` 和 `NodeType`,以及一些标准库函数(如 `malloc` 和 `printf`)。输出值的含义和取值范围在函数中有相应的注释和说明。参数间的控制、顺序、独立或依赖等关系主要由函数的实现决定,例如删除节点前需要先查找节点,修改节点前需要先判断节点是否存在等。函数之间相互独立,可以单独调用,但也可以组合使用。// ⽤于详细说明此程序文件完成的主要功能,与其他模块或函数的接⼝,输出值、取值范围、含义及参数间的控制、顺序、独立或依赖等关系 + Others: V1.0// 其它内容的说明 + History: // 修改历史记录列表,每条修改记录应包括修改⽇期、修改者及修改内容简述 + 1. Date: 2023.7.2 + Author: oscar + Modification: Achieve the intended function. Add and normalize comments. +*************************************************/ + +#include +#include "test_hash.h" + +HashTableType* InitHashTable() { + HashTableType* hash_table = (HashTableType*)malloc(sizeof(HashTableType)); + hash_table->tabel_size = 0; + for (int i = 0; i < MAX_TABLE_SIZE; i++) + hash_table->table[i] = NULL; + return hash_table; +} + +int GetHash(int key) { + return key % MAX_TABLE_SIZE; +} + +NodeType* InitNode(int key, int value) { + NodeType* node = (NodeType*)malloc(sizeof(NodeType)); + node->key = key; + node->value = value; + node->next = NULL; + return node; +} + +int GetTableSize(HashTableType* hash_table) { + return hash_table->tabel_size; +} + +NodeType* FindNode(HashTableType* hash_table, int key) { + int index = GetHash(key); + NodeType* nowNode = hash_table->table[index]; + while (nowNode != NULL) { + if (nowNode->key == key) { + return nowNode; + } + nowNode = nowNode->next; + } + return NULL; +} + +void InsertNode(HashTableType* hash_table, int key, int value) { + if (GetTableSize(hash_table) >= MAX_TABLE_SIZE) { + printf("Fail to insert, HashTableType is full."); + return; + } + + int index = GetHash(key); + if (hash_table->table[index] == NULL) { + NodeType* InsertNode = InitNode(key, value); + hash_table->table[index] = InsertNode; + hash_table->tabel_size++; + } else { + NodeType* nowNode = hash_table->table[index]; + while (nowNode->next != NULL && nowNode->key != key) + nowNode = nowNode->next; + if (nowNode->key == key) { + nowNode->value = value; + } else { + NodeType* InsertNode = InitNode(key, value); + nowNode->next = InsertNode; + hash_table->tabel_size++; + } + } +} + +int RemoveNode(HashTableType* hash_table, int key) { + int index = GetHash(key); + NodeType* nowNode = hash_table->table[index]; + NodeType* preNode = NULL; + + while (nowNode != NULL) { + if (nowNode->key == key) { + if (preNode == NULL) { + hash_table->table[index] = nowNode->next; + } else { + preNode->next = nowNode->next; + } + free(nowNode); + hash_table->tabel_size--; + return 1; + } + preNode = nowNode; + nowNode = nowNode->next; + } + return 0; +} + +int ModifyNode(HashTableType* hash_table, int key, int value) { + if (FindNode(hash_table,key) == 0) + return 0; + int index = GetHash(key); + NodeType* nowNode = hash_table->table[index]; + while (nowNode != NULL) { + if (nowNode->key == key) { + nowNode->value = value; + return 1; + } + nowNode = nowNode->next; + } +} + +void Display(HashTableType* hash_table) { + printf("HashTableType:{"); + for (int i = 0; i < MAX_TABLE_SIZE; i++) { + NodeType* nowNode = hash_table->table[i]; + while (nowNode != NULL) { + printf("(%d, %d),", nowNode->key, nowNode->value); + nowNode = nowNode->next; + } + } + printf("}\n"); +} + +void TestHash() { + HashTableType* hash_table = InitHashTable(); + + //测试增加 + printf("testing add method...\n"); + printf("Add 3 node to hashtable....\n"); + InsertNode(hash_table,2,2); + Display(hash_table); + InsertNode(hash_table,3,3); + Display(hash_table); + InsertNode(hash_table,4,4); + Display(hash_table); + + //测试哈希表满 + printf("\nHashTable maxsize is 3, now insert 4th node, check if success:\n "); + InsertNode(hash_table,14,14); + + //测试查找 + printf("\ntesting find method...\n"); + NodeType* found_node = FindNode(hash_table,4); + printf("find key 4,value is %d\n",found_node->value); + + //测试修改 + printf("\ntesting modify method...\n"); + printf("modify key=2 value=100\n"); + int check_success = ModifyNode(hash_table, 2, 100); + if(check_success == 0) { + printf("modify failed, key not exist.\n"); + } else{ + printf("modify success\n"); + } + found_node = FindNode(hash_table, 2); + printf("verify: (%d %d)\n", found_node->key, found_node->value); + + Display(hash_table); + + // 删除键值对 + printf("\ntesting remove method...\n"); + check_success = RemoveNode(hash_table, 3); + if (check_success == 0) { + printf("key not exist, fail to remove.\n"); + } else { + printf("remove success\n"); + } + found_node = FindNode(hash_table,3); + if (found_node == NULL) { + printf("verify: key 3 is removed\n"); + } + + Display(hash_table); + + return; +} + +PRIV_SHELL_CMD_FUNCTION(TestHash, Implement a simple printf test, PRIV_SHELL_CMD_MAIN_ATTR); \ No newline at end of file diff --git a/APP_Framework/Applications/app_test/test_hash/test_hash.h b/APP_Framework/Applications/app_test/test_hash/test_hash.h new file mode 100644 index 000000000..8c7c9526a --- /dev/null +++ b/APP_Framework/Applications/app_test/test_hash/test_hash.h @@ -0,0 +1,41 @@ +/* +* Copyright (c) 2023 oscar +* XiUOS is licensed under Mulan PSL v2. +* You can use this software according to the terms and conditions of the Mulan PSL +v2. +* You may obtain a copy of Mulan PSL v2 at: +* http://license.coscl.org.cn/MulanPSL2 +* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +* See the Mulan PSL v2 for more details. +*/ + +/************************************************* + File name: tesh_hash.h// 文件名 + Description: 这个头文件定义了一个基于链表的哈希表数据结构。其中: + 1. `NodeType` 结构体表示哈希表中的一个节点,包含了该节点的键值以及指向下一个节点的指针。 + 2. `HashTableType` 结构体表示整个哈希表,包含了一个长度为 `MAX_TABLE_SIZE` 的指针数组 `table`,用于存储节点,并且记录了哈希表中节点的数量 `tabel_size`。 + 该头文件的主要功能是定义了 `NodeType` 和 `HashTableType` 两个自定义的数据类型,为使用基于链表的哈希表提供了便利。可以在需要使用哈希表的代码中包含该头文件,并根据需要创建相应的 `HashTableType` 变量,然后使用其中定义的函数来操作哈希表。例如可以使用 `InitHashTable()` 函数来初始化哈希表,使用 `InsertNode()` 函数来插入一个节点,使用 `FindNode()` 函数来查找指定键值的节点等等。具体使用方法可以参考使用哈希表的代码示例.// ⽤于详细说明此程序文件完成的主要功能,与其他模块或函数的接⼝,输出值、取值范围、含义及参数间的控制、顺序、独立或依赖等关系 + Others: V1.0// 其它内容的说明 + History: // 修改历史记录列表,每条修改记录应包括修改⽇期、修改者及修改内容简述 + 1. Date: 2023.7.2 + Author: oscar + Modification: Achieve the intended function. Add and normalize comments. +*************************************************/ + +#include +#include + +#define MAX_TABLE_SIZE 3 + +typedef struct TableNode { + int key; + int value; + struct TableNode* next; +} NodeType; + +typedef struct HashTable{ + NodeType* table[MAX_TABLE_SIZE]; + int tabel_size; +}HashTableType; \ No newline at end of file diff --git a/APP_Framework/Applications/app_test/test_hash/启动qemu并运行shell命令.png b/APP_Framework/Applications/app_test/test_hash/启动qemu并运行shell命令.png new file mode 100644 index 0000000000000000000000000000000000000000..84c6afa23375af2168f9349b7284df45e631acf0 GIT binary patch literal 16548 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 LMm;%y?Qj1Em#I%k literal 0 HcmV?d00001 diff --git a/APP_Framework/Applications/app_test/test_hash/编译项目.png b/APP_Framework/Applications/app_test/test_hash/编译项目.png new file mode 100644 index 0000000000000000000000000000000000000000..05a70876b8ea00427e53b5c5984d1f20301f5629 GIT binary patch literal 10888 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

;y;aMK(@Bp60JV5 zt)oFnGL5y?xPA|b)`yJ-ojPXTfC$IQOv)aL*TM77_1?&Fe$qEmj2rNPXKimm-kmw) zT8|XF23~%*_m97>*fzxZVeRdJ%{Vec&h2`%U8(~vZ;7K38nz4H1b$r+j=~8+=@+V74)_**)?G<#f98bnQR(WE$3D_?By7Rl5%8=u(PMLVaQ6Z|e__95*|5Ly8#ZXSs|eCRu$}sL-~3TV-j2R}hgeh)f_PaC} z=NuN%%Jt{#?z8*UZFTvPQV74$h;t>e{5|p|g`)9LB*w()Ed$vT4rKD?fx424w7E)Jwh&dNT zdf;0u#N61tW7q_QLhlgy`BY8p=RWw@WViDao&Ubc(!*u|@&m@26=m%`k9B~aa&sPX zG!idEXDxVf+`LMdJv6U6DPt3H^s*}%(r|VS&#&xnP%0qKmtq$#DVi zu8-A^W+2T`ufm+1HX3(dn^ha-mD!X+9b1yn`U%rkCRZ)5-EuImvg{jOi1EA)p2tC19k|K;tvWJv|#(odajHV8Zu z|9;;)FecD(<}QE}P`p=A@XaD|-GfN!VF-B1yEQ}oMppU-ijtDAG4v7Rv8&vy*+?4i zYo;QXQJF^JDNy|WueJI693=XYr~Y7$Qup=CXqn>WrZpz9m7hO7`PrX3yOFSW$AF_B zxaQMYT^>_XUIt`q0ro~F#ul>K=~E^hdKrzBXW@*0a*a5Gt z@FW4>RJrEY(EVG=R})MM=|O#5DXWJVFjE~)W$q@nn{tfAcZpmkXqv4wZMH4vZonNR zUWI$wAMZrC95>-_n(6V^qe=X@@!*&g3BK9%ax1SPp7@0~!Ti1TewRiYV{gSXdZrh;ynO$^02#D|IsgCw literal 0 HcmV?d00001