資源簡介
////采用除留余數法定義哈希表,哈希表長度為10,哈希函數為H(key)=key%13。產生沖突時采用線性探測法實現下面要求的功能。
////(1)初始化哈希表,置空哈希表
////(2)在哈希表中查找元素
////(3)在哈希表中插入元素
////(4)輸出哈希表中所有元素
////(5)建立Hash表

代碼片段和文件信息
////1?哈希表操作,采用線性探測法處理沖突
////采用除留余數法定義哈希表,哈希表長度為10,哈希函數為H(key)=key%13。產生沖突時采用線性探測法實現下面要求的功能。
////(1)初始化哈希表置空哈希表?
////(2)在哈希表中查找元素
////(3)在哈希表中插入元素
////(4)輸出哈希表中所有元素
////(5)建立Hash表
////#include?“stdio.h“
////#define?M?13
////#define?N?12
////struct?hterm
////{
//// int?key;//關鍵字值
//// int?si;//散列次數
////};
////struct?hterm?hashlist[M+1];
////int?iaddresssumdx[N+1];
////float?average;
////main()
////{ for(i=1;i<=M;i++)//置初值
//// { hashlist[i].key=0;
//// hashlist[i].si=0;
//// }
//// x[1]=19;x[2]=14;x[3]=23;x[4]=1;
//// x[5]=68;x[6]=20;x[7]=84;x[8]=27;
//// x[9]=55;x[10]=11;x[11]=10;x[12]=79;
//// for(i=1;i<=N;i++)
//// { sum=0;
//// address=x[i]%M;
//// d=address;
//// if(hashlist[address].key==0)
//// { hashlist[address].key=x[i];
//// hashlist[address].si=1;
//// }
//// else
//// { do?//處理沖突
//// { d=(d+1)%M;
//// sum=sum+1;
//// }while?(hashlist[d].key!=0);
//// hashlist[d].key=x[i];
//// hashlist[d].si=sum+1;??
//// }
//// }
//// printf(“散列表地址:??“);
//// for(i=0;i //// printf(“\n“);
//// printf(“散列表關鍵字:“);
//// for(i=0;i //// printf(“\n“);
//// printf(“查找長度:????“);
//// for(i=0;i //// printf(“\n“);
//// average=0;
//// for(i=0;i //// average=average/N;
//// printf(“平均查找長度:ASL(%d)=%g“Naverage);
////}
//
//#include?
//#include?
//#include?
//
///****?哈希表類型的定義****/
//#define?NIL?0????????//?用NIL作為空閑單元的標志?
//#define?DelNIL?-1????????//?用DelNIL作為已刪除單元的標志?
//#define?m?13?//?mod?number
//#define?n?20?//hash?長度
//
//
//typedef?struct
//{
// int?key;?//關鍵字
//}LHashTable;
//
///****初始化哈希表****/
//void?HashListInit(LHashTable??HT[n])
//{
// int?i;
//????for(i=0;i // ????HT[i].key=NIL;
//}
//
///****?清空哈希表?****/
//void?HashListClear?(LHashTable??HT[])
//{
// int?i;
//???for(i=0;i // ???HT[i].key=NIL;
//}
//
///****定義哈希函數****/
//int?Hash(int?k)???//?返回余數
//{
// return?(k%m);
//}
//
///****在哈希表中查找元素****/
//int?HashListSearch(LHashTable?HT[n]int?k)?//?-1:沒有找到other-找到
//{
// int?dtemp;
//????d=Hash(k);???????????????????????//?計算k的哈希地址?
//???temp=d;?????????????????????//?temp暫存k的哈希地址?
//?while(HT[d].key!=NIL)
//???{
// ???if(HT[d].key==k)?
// ???return?d;????????//?在哈希表中查找到元素k?
//???????else?
// ???d=(d+1)%n;????????????//?沒找到進行線性探測法繼續查找?
// ???if(d==temp)?
// ???return?-1;??????//哈希中沒有待查元素k?
// }
//??return?-1;
//}
//
///****在哈希表中插入一個元素****/
//void?HashListInsert(LHashTable??HT[n]int?k)
//{
// int?dtemp;
//?d=Hash(k);????????????????????????//?計算k的哈希地址?
//?temp=d;???????????????????????????//temp暫存k的哈希地址?
//?while(HT[d].key!=NIL&&HT[d].key!=DelNIL)???//?當前位置已有元素?
//???{
// ???d=(d+1)%n;??????????????????????//進行線性探測?
//??????if(d==temp)?
// ??{
// ??printf(“哈希表已滿\n“);???//?哈希表已滿?
// ??exit(1);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4766??2008-10-16?17:01??1.c
-----------?---------??----------?-----??----
?????????????????4766????????????????????1
評論
共有 條評論