- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构C语言版吴子东第7章查找课件教学.ppt
7.1 查找的基本概念 7.2 静态查找表 7.2.1 静态查找表的结构 7.2.2 顺序查找 7.2.3 有序表的折半查找 7.2.4 分块查找 作业 7.2.1 静态查找表的结构 typedef struct { elemtype *elem; /*数组基址*/ int length; /*表长度*/ }s_tbl; 7.2.2 顺序查找 查找方法为:从表的一端开始,向另一端逐个按给定值kx与关键字进行比较,若找到,查找成功,并给出数据元素在表中的位置;若整个表检测完,仍未找到与kx相同的关键字,则查找失败,给出失败信息。 7.2.3 有序表的折半查找(二分查找) 折半查找的思路: 在有序表中,取中间元素作为比较对象,若给定值与中间元素的关键字相等,则查找成功;若给定值小于中间元素的关键字,则在中间元素的左半区继续查找;若给定值大于中间元素的关键字,则在中间元素的右半区继续查找。不断重复上述查找过程,直到查找成功,或所查找的区域无数据元素,则查找失败。 7.2.3 有序表的折半查找(二分查找) 算法执行示意图。 算法执行示意图。 性能分析:从折半查找过程看,以表的中点为比较对象,并以中点将表分割为两个子表,对定位到的子表继续这种操作。所以对表中每个数据元素的查找过程,可用二叉树来描述,称这个描述查找过程的二叉树为判定树。 7.2.4 分块查找 分块示例 作业 1.静态查找有几种方法。 2.那种静态查找方法的过程可以形成一棵二叉判定树。 3.做教材习题中的以下题目。 单项选择题:(2),(3) 填空题:(1),(2), (5), (6), (7) 应用题:(4) 7.3 动态查找表 7.3.1 二叉排序树的查找 7.3.2 B-树的查找 作业 7.3.1 二叉排序树的查找 ① 若左子树不空,则左子树上所有结点的值均小于根结点的值;若右子树不空,则右子树上所有结点的值均大于(若允许存在有相同值的关键字,则大于等于)根结点的值。 2.构造二叉排序 以二叉链表作为二叉排序树的存储结构,则结点描述如下: 二叉排序树查找的算法如下: void insertnode (nodetype **t, elemtype x) { /*在二叉排序树*t上插入关键字为x的结点*/ nodetype *p=*t,*q,*s; if(!searchelem(*t,p,q,x)); /*在*t为根的子树上查找*/ { s=(nodetype *)malloc(sizeof(nodetype)); s-elem=x;s-lc=NULL;s-rc=NULL; if(!p) t=s; /*向空树中插入时*/ else{ if(xp-elem)p-rc=s; /*插入结点为p的右孩子*/ else p-lc=s; /*插入结点为p的左孩子*/ } } } 5.二叉排序树的删除操作 从二叉排序树中删除一个结点之后,使其仍能保持二叉排序树的特性即可。 设待删结点为P,其双亲结点为F,以下分三种情况进行讨论。 int deletenode(nodetype **t,keytype key) { nodetype *p=*t,*q,*s,**f; int flag=0; if(searchelem(*t,p,q,key)); { flag=1; /*查找成功,置删除成功标志*/ if(p==q) f=(*t); /*待删结点为根结点时*/ else { f=(p-lc); /*待删结点非根结点时*/ if(keyp-elem)f=(p-rc);} /*f指向待删结点的父结点的相应指针域*/ if(!q-rc)*f=q-lc; /*若待删结点无右子树,以左子树替换待删结点*/ else { if(!q-lc)*f=q-rc; /*若待删结点无左子树,以右子树替换待删结点*/ else { p=q-rc;s=p; /*既有左子树又有右子树*/ while(p-lc){s=p;
您可能关注的文档
- 数据库设计及其应用刘秋生2009pp04课件教学.ppt
- 数据库设计及其应用刘秋生2009pp05课件教学.ppt
- 数据库设计及其应用刘秋生2009pp06课件教学.ppt
- 数据库设计及其应用刘秋生2009pp07课件教学.ppt
- 数据库设计及其应用刘秋生2009pp08课件教学.ppt
- 数据库设计及其应用刘秋生2009pp09课件教学.ppt
- 数据库设计及其应用刘秋生2009pp10课件教学.ppt
- 数据库设计及其应用刘秋生2009pp11课件教学.ppt
- 数据库设计及其应用刘秋生数据库设计及其应用(总目录)课件教学.ppt
- 数据库访问与数据库程序设计项目式陈承欢单元8基于多层架构的数据库程序设计课件教学.ppt
- 2025年甘肃省白银市景泰黄河石林文化旅游开发有限公司招聘22考前自测高频考点模拟试题最新.docx
- 2025年春季河南省水利勘测有限公司招聘21人笔试参考题库最新.docx
- 2025秋季山东电力建设第三工程有限公司招聘80人模拟试卷附答案.docx
- 2025年甘肃酒泉敦煌市选调事业单位工作人员14人备考题库最新.docx
- 2025江苏南京鼓楼医院人力资源服务中心招聘4人备考题库附答案.docx
- 2025年济南市济阳区城市建设投资集团有限公司社会招聘(笔试参考题库最新.docx
- 2025广西南宁市江南区财政局招聘1人参考题库附答案.docx
- 2025广东珠海市司法局直属单位招聘合同制职员3人参考题库最新.docx
- 2025年陕西供销集团有限公司社会招聘(8人)考前自测高频考点模拟试题最新.docx
- 2025年湖南益阳沅江市茶盘洲镇卫生院招聘临聘护理人员3人备考题库最新.docx
原创力文档


文档评论(0)