Hash表(链接法)的插入,删除和查找
来源:互联网 发布:java语言的就业前景 编辑:程序博客网 时间:2024/06/05 10:49
#include "stdio.h"#include "stdlib.h"#include "memory.h"struct hashNode{ int data; hashNode *next;};struct hashTable{hashNode *value[10];};//创建hash表(空)hashTable * createHashtable(){hashTable *phashTb1=(hashTable*)malloc(sizeof(hashTable));memset(phashTb1,0,sizeof(hashTable));return phashTb1;}//在hash表中寻找数据hashNode *findInHashTable(hashTable *phashtb1,int data){hashNode *pNode;if(NULL==phashtb1)return NULL;if(NULL==(pNode=phashtb1->value[data%10]))return NULL;while(pNode){if(pNode->data==data)return pNode;else{pNode=pNode->next;}}return NULL;}//在hash表中插入数据bool insertDataInHashTable(hashTable *phashtb1,int data){hashNode *pNode;if(NULL == phashtb1)return false;if(NULL==phashtb1->value[data%10]){pNode=(hashNode*)malloc(sizeof(hashNode));memset(pNode,0,sizeof(hashNode));pNode->data=data;phashtb1->value[data%10]=pNode;return true;}/*if(NULL==findInHashTable(phashtb1,data))return false;*/ pNode=phashtb1->value[data%10];while(pNode->next)pNode=pNode->next;pNode->next=(hashNode*)malloc(sizeof(hashNode));memset(pNode->next,0,sizeof(pNode));pNode->next->data=data;pNode->next->next=NULL;return true;}//从hash表中删除数据bool delete_data_from_hash(hashTable* pHashtb1,int data){hashNode *pNode;if(NULL==pHashtb1||NULL==pHashtb1->value[data%10])return false;if(NULL==findInHashTable(pHashtb1,data))return false;if(data==pHashtb1->value[data%10]->data){pNode=pHashtb1->value[data%10];pHashtb1->value[data%10]=pHashtb1->value[data%10]->next;free(pNode);return true;}pNode=pHashtb1->value[data%10];hashNode *pHead=pNode;pNode=pNode->next;while(pNode->data!=data){pNode=pNode->next;pHead=pHead->next;}pHead->next=pNode->next;pNode->next=NULL;free(pNode);}int main(){hashTable *pHashTbl=createHashtable(); insertDataInHashTable(pHashTbl,1); insertDataInHashTable(pHashTbl,2); insertDataInHashTable(pHashTbl,3); insertDataInHashTable(pHashTbl,4); insertDataInHashTable(pHashTbl,5); insertDataInHashTable(pHashTbl,6); insertDataInHashTable(pHashTbl,7); insertDataInHashTable(pHashTbl,8); insertDataInHashTable(pHashTbl,9); insertDataInHashTable(pHashTbl,10); insertDataInHashTable(pHashTbl,11); insertDataInHashTable(pHashTbl,12); insertDataInHashTable(pHashTbl,13); insertDataInHashTable(pHashTbl,14); insertDataInHashTable(pHashTbl,15); insertDataInHashTable(pHashTbl,16); insertDataInHashTable(pHashTbl,17); insertDataInHashTable(pHashTbl,18); delete_data_from_hash(pHashTbl,3);delete_data_from_hash(pHashTbl,13);return 0;}
0 0
- Hash表(链接法)的插入,删除和查找
- 用c实现HASH表创建、插入、查找、删除、打印
- 用c实现HASH表创建、插入、查找、删除、打印
- 哈希(hash) 之 hash的插入和查找(链地址法)
- 三元查找树-插入和查找的速度快于hash表
- 链接队列的数据结构和插入删除
- 链表的插入删除和查找_C++实现
- 二叉排序树的查找、插入和删除
- 二叉排序树的查找、插入和删除
- ArrayList和linkedList的插入、查找、删除
- 关于BST的插入,查找和删除
- 哈希(hash) 之插入和查找(链地址法)
- 二叉查找树节点的查找、插入和删除
- 二叉查找树的查找、插入和删除
- 链表的删除,插入,查找,排序
- 线性表的插入,删除,合并,查找
- 线性表的插入、查找与删除
- 用c实现HASH表创建、插入、查找、删除、打印(欢迎高手指点)
- 第二周项目2-别拿胖子说事
- Effective Java——创建和销毁对象
- 提高你开发效率的十五个Visual Studio 2010使用技巧
- 第二周项目3-小试循环
- POJ 3414 Pots
- Hash表(链接法)的插入,删除和查找
- 计算机网络之网络层
- Java内存与垃圾回收调优
- Android NDK编译C/C++结合Unity实现本地数据共享
- CSS3 3D效果
- JSONModel解析数据成Model
- DM8168外挂IC卡读写异常
- 深入理解JavaScript中的this关键字
- FZU 2103 Bin & Jing in wonderland