- 1、本文档共101页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构--第八章-查找PPT
第八章 查 找;查找:根据给定的关键字值,在特定的列表中确定一个其关键字与给定值相同的数据元素,并返回该数据元素在列表中的位置。 ;平均查找长度:为确定数据元素在列表中的位置,需和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度。 ;查找的基本方法:;8.2 基于线性表的查找法;不设置监视哨的顺序查找算法;用平均查找长度分析顺序查找算法的性能。;8.2.2 折半查找法(二分法查找法);例如用折半查找法查找10、50的具体过程,其中mid=(low+high)/2,当highlow时,表示不存在这样的子表空间,查找失败。 ;60;用折半查找法查找50的过程:;60;折半查找的算法如下:;用平均查找长度分析折半查找算法的性能;8.2.3 分块查找法;下图为一个索引顺序表;分块查找的基本过程为:;分块查找的平均查找长度由两部分组成:即查找索引表时的平均查找长度为LB,以及在相应块内进行顺序查找的平均查找长度LW。
ASLbs=LB+LW ;LB=;8.3 基于树的查找法;8.3.1 二叉排序树; 由定义可以得出二叉排序树的一个重要性质:中序遍历一个二叉排序树时可以得到一个递增有序序列。 ;使用二叉链表作为存储结构,其结点结构说明如下:;1. 二叉树的插入和生成;二叉排序树的插入算法:; 二叉排序树的生成方法:
假若给定一个元素序列,可以利用上述算法创建一棵二叉排序树。
将二叉排序树初始化为一棵空树,然后逐个读入元素,每读入一个元素,就建立一个新的结点插入到当前已生成的二叉排序树中,即调用上述二叉排序树的插入算法将新结点插入。 ;生成二叉排序树的算法:;设关键字的输入顺序为:45,24,53,12,28,90,按上述算法生成的二叉排序树的过程:;对同样一些元素值,如果输入的顺序不同,则所建的二叉树形态也不同。如果将上述例子中的关键字顺序变为:24,53,90,12,28,45,则生成的二叉排序树为:;2. 二叉排序树的删除;(2)若p结点只有左子树,或只有右子树,则可将p的左子树或右子树直接改为其双亲结点f的左子树。即:f-lchild=p-lchild(或f-lchild=p-rchild);free(p); ;方法一:首先找到p结点在中序序列中的直接前驱s结点,如图 (b) 所示,然后将p的左子树改为f的左子树,而将p的右子树改为s的右子树:f-lchild=p-lchild;s-rchild= p-rchild;free(p);结果如图 (c) 所示。 ;方法二:首先找到p结点在中序序列中的直接前驱s结点,如图 (b) 所示,然后用s结点的值,替代p结点的值,再将s结点删除,原s结点的左子树改为s的双亲结点q的右子树:p-data=s-data;q-rchild= s-lchild;free(s);结果如图 (d) 所示。 ;在二叉排序树中删除结点的算法;if(p==NULL) return t;/*若找不到,返回原来的二叉排序树*/
if(p-lchild==NULL)/*p无左子树*/
{if(f==NULL) t=p-rchild;/*p是原二叉排序树的根*/
else if(f-lchild==p)/*p是f的左孩子*/
f-lchild=p-rchild ; /*将p的右子树链到f的左链上*/
else /*p是f的右孩子*/
f-rchild=p-rchild ;/*将p的右子树链到f的右链上*/
free(p);/*释放被删除的节点p*/
}
;else /*p有左子树*/
{ q=p;s=p-lchild;
while(s-rchild)/*在p的左子树中查找最右下结点*/
{q=s;s=s-rchild;}
if(q==p) q-lchild=s-lchild ;/*将s的左子树链到q上*/
else q-rchild=s-lchild;
p-key=s-key;/*将s的值赋给p*/
free(s);
}
return t;
} /*DelBST*/ ;3. 二叉排序树的查找;二叉排序树查找的递归算法为:;二叉排序树查找的非递归算法:;4. 二叉排序树的查找性能; 假设每个元素的查找概率相等,则它们的平均查找长度分别是: ;8.3.2 平衡二叉排序树;40;下面通过实例来说明失衡情况以及相应的调整方法;2.在(a)图A的右子树B的右子树上插入70后,导致失衡,如(b)图。为恢复平衡并保证二叉排序树的特性,可将A改为B的左子,B原来的左子改为A的右子,图(c),即以B为轴,对A做一次逆时针旋转。;3.在(a)图A的左子树B的右子树上插入45后,导致失衡,如(b)图。为恢复平衡并保证二叉排序
您可能关注的文档
- 数字控制器的设计的理论基础PPT.ppt
- 数字图像处理-第三章-二值图像PPT.ppt
- 数字化设计技术PPT.ppt
- 数字化音频的采集与简单加工PPT.ppt
- 数字图像处理-第04章-图像增强PPT.ppt
- 数字化学习港大厦进展及功能ppt-2PPT.ppt
- 数字滤波器设计PPT.ppt
- 数字温度控制器的设计与制作PPT.ppt
- 数字射线检测设备与标准2013(梁丽虹)PPT.ppt
- 数值分析课件第八章-数值积分PPT.ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 悬挑脚手架、落地脚手架安全专项施工方案.doc VIP
- 分级护理制度精编PPT课件.pptx VIP
- 梁德清体育活动等级量表(PARS-3)及评定标准.doc VIP
- 建筑施工技术(千年土木 小筑拾遗)知到课后答案智慧树章节测试答案2025年春潍坊工程职业学院.docx VIP
- ABB.ACS580替换550指南了解.pdf VIP
- 2025年公需课《人工智能赋能制造业高质量发展》试题及答案.doc VIP
- 建筑施工技术(千年土木 小筑拾遗)智慧树知到期末考试答案章节答案2024年潍坊工程职业学院.docx VIP
- 2023兖矿能源定向委培考试.pdf
- 潮汕工夫茶调研报告.docx VIP
- 生活中的物理问题“生活中的物理”探究.pptx VIP
文档评论(0)