在二叉树中,根节点的深度是0还是1 啊!在教材上是0,而老师讲的是1
按照定义树的深度和高度就是树中最大的结点层数。只有一个节点的二叉树,该节点显然是二叉树的根,该树的总层数为1,因此只有一个节点的二叉树的高度(深度)是为1。如果将该二叉树的根节点所在的层次定义为第0层(也可以定义为第1层),则该二叉树的高度(深度)为1,且根节点第0层。
是1啊,深度和层数一样的,从1开始算
根的深度和高度为0
《数据结构与算法分析(Mark Allen Weiss)》:
深度是从根到节点的唯一路径长,根的深度为0;高度为从节点到一片树叶的最长路径的长,树叶的高度为0。
此外,树是现实中抽象出的,倒过来画的,所以往下是高度,往上是深度。
从逻辑上来说,根的深度与高度是0(树的深与高就定了)。它们是一个距离概念,是两节点的差。
从1开始有一些应用上的好处,比如说高为3层(起始为1)的满二叉树(7个元素),它的节点数就是2^3-1,也即高h则节点数2^h-1。而国外该树的高是2,那么就是2^(2+1)-1,没那么简洁,又比如平衡树的节点数范围也是同理。
另外,国内某些教材似乎有意无意地模糊了高度和深度的概念,体现在某些编程里,明明是从中间节点往下算,算的是高度,却说是在算深度(不影响最终程序结果,但逻辑混乱了)。然后一些教材里引入了层次的概念,我觉得挺好,层次其实就从0开始算的高度加1。
再回到最开始,根节点到底该不该有高度呢?这实质上取决于你逻辑上的参照系,如果根是逻辑上的根,那么参照物就是自己,那么高度和深度就该是0。如果根节点是起始节点的意思,参照物是地面(null)那么根节点的高就是1,但逻辑上的问题又出现了,那它高为1,深度咋还为1呢?这时候高和深度其实混在一起了。国内给了一种没错但是逻辑混乱的定义:树的深度(高度)是树中所有节点的最大层次。
…………………………………………
这里再提一句,国外的满二叉树也不是国内的定义,而是任意节点的度是2或0就算满(是一种性质),该定义下,你能表示的性质更多。
对完全二叉树的深度,深度大于等于1.
应该是1 你可以找一下有关树的深度的公式验证一下。
在二叉树中,根节点的深度是0还是1 啊!在教材上是0,而老师讲的是1
从逻辑上来说,根的深度与高度是0(树的深与高就定了)。它们是一个距离概念,是两节点的差。从1开始有一些应用上的好处,比如说高为3层(起始为1)的满二叉树(7个元素),它的节点数就是2^3-1,也即高h则节点数2^h-1。而国外该树的高是2,那么就是2^(2+1)-1,没那么简洁,又比如...
二叉树中根节点的深度怎么算?
一颗树只有一个节点,它的深度是1;根节点只有左子树而没有右子树,那么二叉树的深度应该是其左子树的深度加1;根节点只有右子树而没有左子树,那么二叉树的深度应该是其右树的深度加1;根节点既有左子树又有右子树,那么二叉树的深度应该是其左右子树的深度较大值加1 二叉树的宽度算法如下:宽度的...
怎么判断二叉树的根结点
判断二叉树根结点方法:1、前序遍历:一个输出的就是根节点;2、后序遍历:较后一个输出就是根节点;3、中序遍历:非递归情况可以控制栈的输出,若是层遍历,即一个输出的就是根节点。根结点:树的一个组成部分,也叫树根,所有非空的二叉树,都有且仅有一个根结点,它是同一棵树中除本身外所...
设一颗完全二叉树中根结点的编号为1,而且23号结点有左孩子但没有右孩 ...
2. 由于2^4 - 1 < 23 < 2^5 - 1,因此第23个结点位于完全二叉树第五层 且因为23 = 2^4 - 1 + 8,所以其为第五层第八个结点 3. 依据条件其只有左孩子没有右孩子,因此整个完全二叉树在第六层第15个结点处结束 (注:2(每个节点有两个孩子)* 8(第五层有八个节点) - 1(第...
什么是二叉树的节点?
节点:二叉树中每个元素都称为节点。度:二叉树的度表示节点的子树或直接继承者的数目,二叉树的度是一个子树或单子树。2度是两个孩子,或者左和右子树有两个叉树,最大度数为2。叶子:叶是叶节的缩写。叶子或叶子指的是网络结构中的计算机,它接收来自靠近中心的计算机而不是更远的计算机的信号。叶...
二叉树的根节点是怎么确定的?
1、由先序遍历特征,根节点必在先序序列首部,可知根节点是A;由中序遍历特征,根节点必在中间,可以得到左子树子孙(BFD),右子树子孙(GEHC);2、继续可得子树B(先序BDF中序BFD)3、C(先序CEGH中序GEHC);4、重复上述步骤,即可唯一地确定一棵二叉树 ...
设二叉树根节点的层次为0,对含有100个结点的二叉树,可能的最大树深和...
最大深度:99,因为根结点层次为0,每层只有一个结点,于是深度为100-1=99 最小深度:6,因为从满二叉树的角度看深度为6的结点个数为2的7次方减1,为127个,深度为5的满二叉树结点个数为2的6次方-1,为63个:
根据先序和中序序列生成二叉树
1、先序或中序为空则返回,否则,通过先序序列创建根结点,再通过根节点在中序遍历的位置找出左右子树。2、在根绝点的左子树中,找左子树的根结点(在先序中找),转步骤1。3、在根节点的右子树中,找右子树的根结点(在先序中找),转步骤1。根据上述算法,可以看出创建出二叉树的关键在于先序...
如图,请问在二叉树中,哪些节点是满的?
首先,我们需要理解前序遍历和中序遍历在二叉树中的行为。前序遍历的顺序是:根节点 -> 左子树 -> 右子树。中序遍历的顺序是:左子树 -> 根节点 -> 右子树。在这个问题中,前序遍历和中序遍历相同,意味着每一个节点都有两个子节点,除了根节点以外。因此,我们可以得出结论:对于深度为4的二叉...
...m3当求转化为二叉树后 根节点的右子树根节点
根节点的右子树根节点个数为m2+m3。根据森林和二叉树之间的转换关系,二叉树的左子树是其根节点对应的孩子,二叉树的右子树是其根节点对应的兄弟。简介 二叉树(Binary tree)是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉...
文冠圣迪: 根结点如果不为空,深度为1,如果跟结点为空,则深度是0. //求二叉树深度int TreeDepth(BinaryTreeNode* pRoot)//计算二叉树深度{ if(pRoot==NULL)//如果pRoot为...
镶黄旗17021543086: 二叉树的根节点深度为1还是0? - ?
文冠圣迪: 当然.最好是1 因为后面 求左子树 的结点个数,等 算法,定义成0,比较麻烦
镶黄旗17021543086: 在二叉树中,根节点的深度是0还是1 啊!在教材上是0,而老师讲的是1 - ?
文冠圣迪: 对完全二叉树的深度,深度大于等于1.
镶黄旗17021543086: 只有一个节点的二叉树的高度( 深度)是为0还是1? - ?
文冠圣迪:[答案] 是1. 根结点 算第一层深度.
镶黄旗17021543086: 二叉树有12个结点,叶子结点只有2个,问二叉树的深度(根结点在第一层) - ?
文冠圣迪: 深度为[7,11]. 由于二叉树只有2个叶子节点,所以度为0的节点N0 = 2,由二叉树的定理可知度为2的节点N2= N0 - 1,所以N2 = 1.度为1的节点N1 = 12(总节点数) - N0 - N2 = 9.由此 可知二叉树度为2的结点只有1个,因此当根节点的度为2,左右子树的深度为5和6时,整个二叉树的深度最浅为7,根节点的左右子树深度为10和1时,二叉树的深度最深为11.调整左右子树的深度即可让二叉树的深度位于7~11之间.
镶黄旗17021543086: 二叉树的深度是什么?是所有层数的和吗? - ?
文冠圣迪: 树的层数和深度是一个意思. 假如树有N层,则它的深度为N
镶黄旗17021543086: 二叉树根结点的层次是什么意思? - ?
文冠圣迪: 根的层次为0,根的直接左右孩子层次为1,以此类推层次逐渐递增.最大树身为99,即所有节点只有左孩子或者右孩子.最小树身为6,即每一层结点都是满的,除了最后一层叶节点.
镶黄旗17021543086: 如下图满二叉树第一层和第二层有几个节点?第K层有几个节点? - ?
文冠圣迪: 根的层次为一就是说根节点为第一层来算(有的时候把根节点作为第0层看,这里为了避免误解所以说明了根节点层次看为1),你所说的高度应该就是我们那时候说的深度吧,深度(高度)是指的树中所有结点的最大层次数.所以对于二叉树,如果把根节点作为第0层看,深度为k的二叉树最多有2的k次方减1个节点.根节点作为第1层看,深度为k的二叉树最多有2的(k-1)次方减1个节点.所以答案:深度为7.因为2的(7-1)次方减1等于64.OK,理解否?
镶黄旗17021543086: 一颗二叉树共有47个结点,其中有23个度为2的结点.假设根结点在第1层,则该二叉树的深度为多少? - ?
文冠圣迪: 具有n个结点的完全二叉树的深度为:以2为底n的对数+1,所以该二叉树的深度为6
镶黄旗17021543086: 二叉树结点,度,深度,等等看不懂 - ?
文冠圣迪: 这道题是去年9月份的二级Access的填空题,我看了好多答案,都是6.其实是不对的.因为这里所说的二叉树,没有说是完全二叉树!所以有很多种可能,如改成该二叉树的深度最小为多少,就是6可以根据完全二叉树来推导.二叉树中,度为0的结点为度为2的结点数加1,可知度为0的叶子结点为24,所以没有度为1的结点.哈夫曼树就不存在度为1的结点,根据其特征,可知该二叉树最高为24,第一层一个结点,后续的每层2个结点,总共刚好为47个结点.所以正确的答案应为:6至24都可以