当前位置:首页 » 存储配置 » 存储待查

存储待查

发布时间: 2023-01-09 08:38:17

㈠ 关于C++中的哈希表


{int elem[MAXSIZE]; //数据元素体
HAVEORNOT elemflag[MAXSIZE]; //元素状态标志,没有记录、有记录、有过记录但已被删除
int count; //哈希表中当前元素的个数
}HashTable;

BOOL DeleteHash(HashTable &H,Record e)
{//在查找成功时删除待删元素e,并返回True,否则返回False
int p;
if(!SearchHash(H,e.keynum,p)) //表中不存在待删元素
return False;
else
{H.elemflag[p]=DELKEY; //设置标志为DELKEY,表明该元素已被删除
H.count--; //哈希表当前长度减一
return True;
}
}

BOOL SearchHash(HashTable H,int k,int &p)
{//在开放寻址哈希表H中查找关键字为k的数据元素,若查找成功,以p指示
//待查数据元素在表中的位置,并返回True;否则,以p指示插入位置,并
//返回False
int p1;
p1=p=Hash(k); //求得哈希地址
while(H.elemflag[p]==HAVEKEY&&k!=H.elem[p])
//该位置中填有记录并且关键字不相等
{p++; //冲突处理方法:线性探测再散列
if(p>=MAXSIZE) p=p%MAXSIZE; //循环搜索
if(p==p1) return False; //整个表已搜索完,没有找到待查元素
}
if(k==H.elem[p]&&H.elemflag[p]==HAVEKEY) //查找成功,p指示待查元素位置
return True;
else return False; //查找不成功
}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:595
制作脚本网站 发布:2025-10-20 08:17:34 浏览:889
python中的init方法 发布:2025-10-20 08:17:33 浏览:583
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:766
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:687
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1015
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:258
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:117
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:808
python股票数据获取 发布:2025-10-20 07:39:44 浏览:715