资源简介
////采用除留余数法定义哈希表,哈希表长度为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++控制播放/插入PPT等操作
- 用C语言实现文件的模糊查找.pdf
- C++插入排序
- C语言设计散列表实现电话号码查找系
- 通讯录管理系统c++版顺序表存储,折
- 数据结构课程设计应用索引文件和查
- C++实现小型数据库DBMS,具备建表以及
- Hash查找、二分查找c语言关键字个数
- C语言实现二叉树的创建、插入、删除
- 数据结构栈、队列、二叉树、顺序查
- MFC对话框动态接收数据插入List列表并
- MFC特强大CListCtrlEx支持插入控件、设置
- B-树和B+树的源代码
- 数据结构上机 由用户输入n个10以内的
- c++数组查找函数实现
- 用C实现二分查找演示
- 哈希表设计 针对某个集体比如你所在
- 三种排序算法测试实验包括插入排序
- 通讯录c++实现 功能:添加、删除、查
- 并查集的C++实现,并查集的建立,合
- 诗词大会登录、诗词查找、诗词填空
- C++课程设计影碟出租管理
- 二叉树的插入C语言
- 每输入i0=
- 数据结构课程设计|利用邻接矩阵创建
- 二叉排序树的建立、插入、查找和删
- C++实现数据库DBMS建表插入删除属性功
- 假设人名为中国人姓名的汉语拼音形
- 房屋销售管理系统C++
评论
共有 条评论