• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C/C++
  • 标签: 查找  插入  输出  

资源简介

////采用除留余数法定义哈希表,哈希表长度为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


评论

共有 条评论