- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 查找
一、散列表的应用——通信录管理
1.题目要求:
采用散列表结构,实现通讯录管理。要求采用散列表的拉链法解决冲突,设计实现通讯录管理中的插入、查找、删除、修改和遍历操作。
2.算法分析:
1.设计采用散列表的静态链地址法解决冲突。
线性数组链表的结构体代码如下:
typedef struct{
????? ??char key;???????????? /*键值*/
?????? ? TXNode *next;???? ?? ??????/*链域*/
?????? }TXhead;
它包含一个键值和一个链域的指针。
链域的结构体代码如下:
typedef struct Node{
? ? char name[20];
? ? int phone;
? ? char addre[50];
? ? char email[35];??? ?????? ???? /*记录信息*/
? ? struct Node *adjv;?????? /*邻域*/
?????????? }TXNode;
它包含联系人的姓名、电话、地址和E-mail的信息存储变量,以及下一个链域的指针。
2.设计功能流程如下:?
1)启动运行程序显示菜单界面。以菜单形式列出各个功能,及对应的序列关键字。
2)提示输入所要进行插入、查找、删除、修改或遍历操作的序号并进行确认。
3)进入所选功能模块根据提示做进一步插入、查找、删除、修改或遍历的操作,并进行确认。
4)确认后返回菜单界面,然后回到第二步或者选择退出,并进行确认。
5)退出程序。
二、查找综合练习
1.题目要求:
查找综合练习: 要求能实现顺序表的三种查找算法:顺序查找,二分查找,分块查找:
一.需要建立的函数:
1.为了实现顺序查找或者二分查找,输入元素建立线性表的函数create 2.顺序查找算法seqsearch 3.二分查找算法(必须对1建立的线性表先排序,再用二分查找)searchbin 4.为了实现分块查找,输入元素建立线性表的函数creatF ??要求在输入元素过程中,同时要建立起索引表 5.分块查找算法blocksearch 二.运行时通过菜单来选择进行什么操作 ============================ ???1:为顺序查找或二分查找建立线性表 ???2:顺序查找线性表?? ???3:二分查找线性表 ???4:为分块查找建立线性表 ???5:分块查找线性表 ???6:退出系统 ============================
2.算法分析:
1.定义线性表 typedef?int?KeyType; typedef?struct{ ?KeyType??key; }NodeType; typedef?NodeType?SeqList[MAXSIZE+1]; 2.分块查找时,定义的索引表 typedef?struct { ??KeyType?key; ??int?staddr;??????????/*?表示开始地址?*/ ??int?len;?????????????/*?表示块长度?*/ }indexlist; typedef??indexlist?ID[MAXID+1]; 3.建立分块查找时的线性表 假设以’#’作为线性表输入结束的标记,以’@’作为块结束的标记。输入数据为ch while(输入不为#) ??{???假设每一块的初始最大值max为0 ??????每一块的初始长度length为0 ??????while(输入不为@) ???????????{?如果此次输入ch值比前一块的最大值小(即存储在in[k-1].key中的数值小),则提示用户重新输入; ?????????????否则的话,?{判断此次输入是否比max大,如果比max大,则max=ch; ??????????????????????????然后把此次输入值ch放在线性表中r[i].key=ch; ???????????????????????????块的长度增加1; ???????????????????????????线性表的长度也增加1;} ???????????} ?????如果输入为@,表示一块已经结束。此时把块中的最大值max赋值给id[k].key,length赋值给块的长度id[k].len ?????再开始下一块的输入。 ??} 4.分块查找 ?可以先通过二分查找索引表id,确定元素所在的块。 ?再通过块的首地址id[k].staddr再去顺序扫描具体的某一块的所有元素。
三、二叉排序树
1.题目要求:
二叉排序树综合练习: 要求能实现二
您可能关注的文档
- 教学实施方案2 (8).doc
- 教学实施方案2.doc
- 教学实施方案3 (2).doc
- 教学实施方案3 (3).doc
- 教学实施方案3 (4).doc
- 教学实施方案3 (5).doc
- 教学实施方案3 (6).doc
- 教学实施方案3 (7).doc
- 教学实施方案3 (8).doc
- 教学实施方案3.doc
- 《GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法》.pdf
- GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法.pdf
- 中国国家标准 GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法.pdf
- 《GB/T 31270.7-2025化学农药环境安全评价试验准则 第7部分:生物富集试验》.pdf
- GB/T 31270.7-2025化学农药环境安全评价试验准则 第7部分:生物富集试验.pdf
- 《GB 5135.2-2025自动喷水灭火系统 第2部分:湿式报警阀、延迟器、水力警铃》.pdf
- GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法.pdf
- 《GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法》.pdf
- 中国国家标准 GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法.pdf
- GB/T 46611-2025电光调制器用铌酸锂单晶薄膜.pdf
原创力文档


文档评论(0)