#include<iostream>
using namespace std;
#define M 5
//定义数据类型
typedef int ElemType ;
//定义哈希表上挂的链表的结点
typedef struct Node
{
ElemType data;
struct Node *next;
}Node,*pNode;
//定义哈希表上的表槽
typedef struct HashNode
{
pNode first;//指向链表的第一个结点
}HashNode,*HashTable;
//创建一个具有n个表槽的哈希表
HashTable create_HashTable(int n)
{
HashTable hashtable=(HashTable)malloc(n*sizeof(HashNode));
if(!hashtable)
{
cout<<"哈希表分配空间失败"<<endl;
exit(-1);
}
for(int i=0;i<n;i++)
{
hashtable[i].first=NULL;
}
return hashtable;
}
pNode search_HashTable(HashTable hashtable, ElemType data)
{
pNode p;
p=hashtable[data%M].first;
if(!p)
return NULL;
else if(p->data==data)
return p;
while(p->next&&p->next->data!=data)
{
p=p->next;
}
return p->next;
}
bool insert_HashTable(HashTable hashtable,ElemType data)
{
pNode p,pNew;
if(search_HashTable(hashtable,d
哈希表的创建查询插入删除销毁
最新推荐文章于 2024-03-30 02:09:19 发布
本文介绍了哈希表的基本操作,包括如何创建哈希表,使用链表解决冲突,以及查找、插入和删除元素的方法。通过示例代码展示了哈希表的动态操作过程,最后演示了如何销毁哈希表。
摘要由CSDN通过智能技术生成