xing1434422051 2014-10-31 01:02
浏览 931

哈希表判断冲突的条件有点不懂

void CreateHashList()
{ int i;
for(i=0; i<HASH_LENGTH;i++)
{ HashList[i].py="";
HashList[i].k=0;
HashList[i].si=0;
}
for(i=0;i<HASH_LENGTH;i++)
{ int sum=0;
int adr=(NameList[i].k)%M; //哈希函数
int d=adr;
if(HashList[adr].si==0) //如果不冲突
{ HashList[adr].k=NameList[i].k;
HashList[adr].py=NameList[i].py;
HashList[adr].si=1;
}
else //冲突

{ do
{ d=(d+NameList[i].k%10+1)%M; //伪随机探测再散列法处理冲突

sum=sum+1; //查找次数加1

}while (HashList[d].k!=0);
HashList[d].k=NameList[i].k;
一开始不是用循环给所有的Hashlist[i].k赋值为0啦吗,为什么后面判断冲突的循环终止的条件是while (HashList[d].k!=0);不是所有Hashlist[i].k赋值为0啦吗,那样不就是覆盖已经填有数据的地址吗

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
    • ¥15 牛顿斯科特系数表表示
    • ¥15 arduino 步进电机
    • ¥20 程序进入HardFault_Handler
    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
    • ¥15 教务系统账号被盗号如何追溯设备
    • ¥20 delta降尺度方法,未来数据怎么降尺度
    • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效