资源简介
////采用除留余数法定义哈希表,哈希表长度为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
相关资源
- c语言字符串分割截取子串查找插入删
- hook,捕获所有案件,查找所有窗口,
- VC6查找与替换插件
- MFC对ACCESS数据库的增加、删除、查找
- 正则表达式(regex)C语言源码,超强
- C++模板实现大根堆的插入删除以及初
- MFC richedit可进行插入图片、表情,有
- VS2008环境下C++实现Dijkstra算法,查找有
- 课程设计-电话号码查找系统C语言版含
- 随机迷宫的形成及迷宫路径查找与输
- MFC源码(任务管理器,定时关机,文
- OracleDBTest.rar
- C++操作word:插入文字、图片、表格,
- C#+opencv拍照和图片对比
- MFC对话框中从文件中插入图片VS2010
- MFC文件搜索程序
- C++插入音乐教程
- vs2017环境,windows系统,检测网线插入
- C++ 删除指定的字符串并在指定的位置
- c++ mfc 单词及其释义的录入和读取,查
- C语言编程的词法分析器,可具体定位
- 七种排序算法包括直接插入排序,折
- c语言排序算法插入,起泡,快速,选
- C语言实现链表,创建、插入、查找、
- 在串str中查找字串substr最后一次出现
- 目录查询:查找唯windows fat 下特定文
- 2、 掌握线性表的基本操作:初始化,
- 各种排序效率比较程序冒泡,选择,
- 排序算法综合:有直接插入排序,希
- 二叉树c++源代码实现查找,删除,插
评论
共有 条评论