- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.二叉排序树的存储结构(二叉链表) 5.二叉排序树的删除 * 第8章 查找 8.2动态查找表 动态查找的特点是,表结构本身是在查找过程中动态生成的,即对给定关键字值key ,表中有具有此值的记录,则查找成功返回,否则插入此关键字的新记录。 ADT DynamicSearchTable { 数据对象D:具有相同特性的数据元素的集合。每个数据元素含有类型相同的关键字,可唯一标识数据元素。 数据关系R:数据元素同属一个集合。 基本操作: InitDSTable(DT); //构造一个空的动态查找表DT DestroyDStable( DT); // 销毁查找表DT。 SearchDSTable(DT,key); //查找具有关键字key 的元素。 InsertDSTable(DT,e); //插入新记录。 DeleteDSTable(DT,key );//删除记录。 TraverseDSTable(DT,visit()); //遍历查找表。 } ADT DynamicSearchTable 动态查找表的抽象数据类型 8.2.1.二叉排序树和平衡二叉树 1.二叉排序树的定义 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: ? 若它的左子树不空,则左子树上所有结点的关键字都小于根结点的关键字。 ? 若它的右子树不空,则右子树上所有结点的关键字都大于根结点的关键字。 ? 左子树和右子树分别是二叉排序树。 不是二叉排序树 50 30 80 20 90 10 85 40 35 25 23 88 66 二叉排序树的例子 typedef struct BiTNode { // 结点结构 struct BiTNode *lchild, *rchild; ElemType data; } BiTNode, *BiTree; 3.二叉排序树的查找 算法思想: (1) p指向根; (2) p的关键字与key比较,有三种情况: p-data.key==key; 查找成功,返回p, 结束; p-data.keykey; 到左子树中找,p指向它左子女; p-data.keykey; 到右子树中找, p指向它右子女; (3) 重复(2)直到p为空,查找失败,返回空; 例 从空树出发,经一系列的查找插入操作之后,可生成一棵二叉排序树。设查找的关键字序列是 {45,24,53,45,12,24,90,48,78},则生成的二叉排序树是: 45 24 78 48 90 12 53 算法1:在根指针T所指二叉排序树中递归地查找某关键字等于key的数据元素,若查找成功,则返回指向该数据元素结点的指针,否则返回空指针。二叉排序树的存储结构为二叉链表。 BiTree SearchBST ( BiTree T, KeyType key ) { if (( ! T ) || EQ ( key, T->data.key )) return ( T ); //查找结束 else if LT ( key, T->data.key )) return ( SearchBST ( T->lchild, key )); //在左子树中继续查找 else return ( SearchBST ( T->rchild, key )); //在右子树中继续查找 }// SearchBST 算法2:在查找不成功时返回插入位置。 在根指针T所指二叉排序树中递归地查找其关键字等于key的数据元素,若查找成功,则指针p指向该数据元素结点并返回TRUE。否则指针p指向查找路径上访问的最后一个结点并返回FALSE,指针f指向T的双亲,其初始调用值为NULL。 Status SearchBST ( BiTree T, KeyType key, BiTree f, BiTree p ) { if ( ! T ) { p = f; return FALSE; } //查找不
您可能关注的文档
- 四阅读一、正确理解词句.ppt
- 线段、射线、直线-课件.ppt
- 完全平方公式-新人教版课件.ppt
- 医学相关病毒.ppt
- 四章账户与复式记账课件.ppt
- 线段的和与差-教学课件.ppt
- 完善体育法制建设.ppt
- 完形填空课件.ppt
- 宋代经济的发展课件.pptx
- 医学心理学-综合医院常见心理问题.ppt
- 2024届浙江省金华市兰溪二中学物理八年级第一学期期末监测模拟试题含解析.doc
- 网络信息化知识培训课件.pptx
- 协作拓展,青春新篇章.pptx
- 雷达阵列信号处理MUSIC算法.pptx
- 2024届浙江省金华市兰溪市实验中学七年级数学第一学期期末经典试题含解析.doc
- 2024届浙江省金华市兰溪二中学八年级数学第一学期期末综合测试模拟试题含解析.doc
- 2024届浙江省金华市七年级数学第一学期期末质量跟踪监视模拟试题含解析.doc
- 2024届浙江省金华市婺城区第四中学数学九年级第一学期期末预测试题含解析.doc
- 2024届浙江省金华市兰溪市实验中学物理八上期末检测试题含解析.doc
- 坚定目标,青春砺志.pptx
文档评论(0)