#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
using namespace std;
#define MAXSIZE 20
typedef struct node
{
int data;
struct node *next;
}Node;
int Hash(int key,int p)
{
return key%p;
}
void Init(Node *HashLink[])
{
int i;
for(i=0;i<MAXSIZE;i++)
HashLink[i]=NULL;
}
int InsertHash(Node *HashLink[],int key,int p)//插入有四种情况
{
int k;
Node *q,*s,*pre;
k=Hash(key,p);
q=HashLink[k];
s=new Node[sizeof(Node)];
s->next=NULL;
s->data=key;
if(!HashLink[k])//第一种情况,啥也没有是空的。不带头结点的就是这点不好,非要通过改变它的自身值来改变原有地址
{
HashLink[k]=s;//易错点
return 1;
}
while(q&&q->data<key)
{
pre=q;
q=q->next;
}
if
哈希:链地址法
最新推荐文章于 2025-02-26 16:27:31 发布