c语言中哈希表删除数据怎么处理
答案:2 悬赏:0 手机版
解决时间 2021-03-21 07:50
- 提问者网友:酱爆肉
- 2021-03-20 18:25
c语言中哈希表删除数据怎么处理
最佳答案
- 五星知识达人网友:佘樂
- 2021-03-20 18:35
链地址直接删除结点,开地址将那个位置置一个删除标记
全部回答
- 1楼网友:十年萤火照君眠
- 2021-03-20 19:38
设计一个哈希表,哈希函数用除留余数法,用开放定址法、线性探测处理冲突,从文本文件读入30个左右中文人名,每行一人,可用本班学生名单。要求:
1.成功的平均查找长度不超过3,能查找人名,能插入新人名,能显示当前哈希表中每个元素,每行显示6个。
2.编写主函数测试这些功能,并统计实际的平均查找长度。用菜单式操作。
3.如果有余力,可以增加删除功能(选做)。
提示:
根据成功的平均查找长度要求和估算公式求出装填因子α上界及哈希表长度m。
#include
#include
#include
//#include
#define hash_len 50 //哈希表的长度
#define m 47
#define name_no 30 //人名的个数
typedef struct name
{
char *py; //名字的拼音
int k; //拼音所对应的整数
}name;
name namelist[hash_len];
typedef struct hterm //哈希表
{
char *py; //名字的拼音
int k; //拼音所对应的整数
int si; //查找长度
}hash;
hash hashlist[hash_len];
void initnamelist()
{ int i;
char *f;
int r,s0;
namelist[0].py="chenghongxiu";
namelist[1].py="yuanhao";
namelist[2].py="yangyang";
namelist[3].py="zhanghen";
namelist[4].py="chenghongxiu";
namelist[5].py="xiaokai";
namelist[6].py="liupeng";
namelist[7].py="shenyonghai";
namelist[8].py="chengdaoquan";
namelist[9].py="ludaoqing";
namelist[10].py="gongyunxiang";
namelist[11].py="sunzhenxing";
namelist[12].py="sunrongfei";
namelist[13].py="sunminglong";
namelist[14].py="zhanghao";
namelist[15].py="tianmiao";
namelist[16].py="yaojianzhong";
namelist[17].py="yaojianqing";
namelist[18].py="yaojianhua";
namelist[19].py="yaohaifeng";
namelist[20].py="chengyanhao";
namelist[21].py="yaoqiufeng";
namelist[22].py="qianpengcheng";
namelist[23].py="yaohaifeng";
namelist[24].py="bianyan";
namelist[25].py="linglei";
namelist[26].py="fuzhonghui";
namelist[27].py="huanhaiyan";
namelist[28].py="liudianqin";
namelist[29].py="wangbinnian";
for (i=0;i
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯