严蔚敏版本的 数据结构中 的二叉排序树中 删除节点 时 重接 Q的左右子树 的方法为何 有选择语句?
作者&投稿:枕阁 (若有异议请与网页底部的电邮联系)
if(q!=p)是p节点的左子节点有右子树时,重接*q的右子树
else p节点的左子节点没有右子树,重接*q的左子树
p=4
/ \
a=3 b=6
假设上图是一颗树。要删除p,那么就是 让p=p->lchild (p=b把6给了p)
因为有可能该删除的节点下面的左子树没有右子树的情况。如下(其中O是待删除的节点,O 下面有左右子树L、R,但L下面没有右子树,这种情况下,直接把L的左子树,也就是A提上来即可)
--------------------根
------------------/-----\
----------------O-------X
---------------/----\
-------------L-------R
----------/
--------A
斗使老鹳: 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操作,应该可以等同的