严蔚敏版本的 数据结构中 的二叉排序树中 删除节点 时 重接 Q的左右子树 的方法为何 有选择语句?

作者&投稿:枕阁 (若有异议请与网页底部的电邮联系)
关于数据结构二叉查找树中删除节点问题,算法从if(q!=p)开始是什么意思,看不懂呀,求大神!~

if(q!=p)是p节点的左子节点有右子树时,重接*q的右子树

else p节点的左子节点没有右子树,重接*q的左子树

p=4
/ \
a=3 b=6

假设上图是一颗树。要删除p,那么就是 让p=p->lchild (p=b把6给了p)

在点p的左右子树同时存在时,程序要用左子树中的最大的元素,即p的左子树中最右边的元素替代p。while循环的用途就是找到这个最右边的元素。但是这个元素可能是p的左孩子本身,即p的左孩子没有右子树。这种情况下,q与p均指向需要删除的节点,这个结点已经复制了其左孩子s的值,所以删除节点s即可。照片中第一行红线处理的是p的左孩子有右子树的情况,而第二行处理的是没有右子树的情况。

因为有可能该删除的节点下面的左子树没有右子树的情况。如下(其中O是待删除的节点,O 下面有左右子树L、R,但L下面没有右子树,这种情况下,直接把L的左子树,也就是A提上来即可)

--------------------根
------------------/-----\
----------------O-------X
---------------/----\
-------------L-------R
----------/
--------A


万载县18592111441: 请问严蔚敏版的数据结构二叉树中关于关于构造二叉链表的Status CreateBitree(BiTree &T)这个&是什么意思 -
斗使老鹳: BiTree &T 表示的是传递 BiTree T 的地址

万载县18592111441: 严蔚敏版数据结构中二叉树的高度和深度一样吗?书上没有高度的概念呀,晚上就考试了,求高手解释一下 -
斗使老鹳: 深度是结点的层数,有几层深度就为几.高度是树枝的根数,有几根树枝高度就为几.wpl用的是高度,asl用的是深度.

万载县18592111441: 严蔚敏版的数据结构(C语言版)的线索二叉树的一个问题
斗使老鹳: 它表示左右标志,当tag==link时它表示结点指向左孩子或右孩子,当tag==thread时表示结点指向前驱或后继结点.link与thread是枚举型中定义的,如:typedef enum{link,thread} Ptag;在结构体里面定义 typedef struct{ int data;struct *lchild,*rchild;Ptag ltag,rtag;} 这样当ltag==link时,它就表示结点指向左孩子,ltag==thread时,它就表示指向前驱结点

万载县18592111441: 数据结构关于删除二叉排序树的小问题 -
斗使老鹳: 错是不会错的.以下是严蔚敏老师关于这个问题的一次回答:这个算法要求对有正“地址引用”的参数确的理解,是难一些,所以你这个问题我已经详细回答过多遍了.关键你要与算法9.7一起看,9.8不是一个独立的算法,它在9.7中被调用,所以形式上修改p,实际上修改的是实参,它是双亲节点的指针域的值.

万载县18592111441: 完全二叉树和平衡二叉树哪个是最佳二叉排序树? -
斗使老鹳: 完全二叉树就是:“它的每个结点(除叶子结点以外)都有两个“孩子””.平衡二叉树就是:“某个内部结点的两棵子树的层数的差不能大于1”不好意思 二叉排序树忘了....

万载县18592111441: 考研的数据结构怎么复习啊!桂求复习方法 -
斗使老鹳: 数据结构是计算机存储、组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术有关. 一、重难点...

万载县18592111441: 数据结构(C语言)严蔚敏版的考试重点是是什么? -
斗使老鹳: 不管是什么书,数据结构考察基础知识,基本的表(数组和链表的增删查改)树,重点是树特别是树的遍历+二叉树,还有哈夫曼树,最后就是图,图的话有最小生成树 最短路径 还有关键路径,最后是基本的排序,基本的就是这些,图太难了,有些可以放弃

万载县18592111441: 数据结构,严蔚敏版wwn ti -
斗使老鹳: 就是x领先于y,或者说x是y的直接前驱,y是x的直接后继.二叉树中,D不为空,也就不是空树,非空二叉树一定有且只能有一个根节点,所以说D中存在唯一的元素X,这个X就是根元素....

万载县18592111441: 利用二叉排序树排序 -
斗使老鹳: 本二叉树创建规则, 小于当前节点的数插入当前节点的左子树,大于当前节点的插入右子树,依次类推直到找到对应的节点. 打印62616964757a686964616fe58685e5aeb931333238653862的时候,通过递归的方法调用遍历函数,按照先左子...

万载县18592111441: 为什么严蔚敏的数据结构书上的i++都些成++i? -
斗使老鹳: i++和++i如果涉及到赋值,是有点区别的 简单的来说,++i 和 i++,在单独使用时,就是 i=i+1. 而 a = ++i,相当于 i=i+1; a = i; 而 a = i++,相当于 a = i; i=i+1; 如果不涉及到赋值,i++和++i只是对i操作,应该可以等同的

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网