描述
请写出在散列表中插入关键字为k的一个记录的算法,设散列函数为H,H(key)=key%13,解决冲突的方法为链地址法。
输入
多组数据,每组三行,第一行为待输入的关键字的个数n,第二行为对应的n个关键字,第三行为需要插入的关键字k。当n=0时输入结束。
输出
每组数据输出用链地址法处理冲突的散列表。
输入样例 1
5 1 4 2 3 5 6 4 2 5 8 15 18 0
输出样例 1
0 1 1 2 2 3 3 4 4 5 5 6 6 7 8 9 10 11 12 0 1 2 2 15 3 4 5 5 18 6 7 8 8 9 10 11 12
//基于链地址法的散列表的插入
#include <iostream>
using namespace std;
typedef struct LNode{
int data;
LNode *next;
}LNode,*LinkList;
int main(){
int n;
while(cin>>n&&n!=0){
LinkList H[13];
for(int i=0;i<=12;i++){//把链表数组里的所有头结点初始化
H[i]=new LNode;
H[i]->next=NULL;
}
for(int i=1;i<=n+1;i+