×

二叉树结点数怎么算

二叉树结点数怎么算(求一棵二叉树的结点总数的算法)

admin admin 发表于2023-07-22 22:59:27 浏览51 评论0

抢沙发发表评论

本文目录

求一棵二叉树的结点总数的算法

intGetCount(BTreeT){if(T==NULL)return0;return1+GetCount(T.left)+GetCount(T.right);//=====采用后序遍历求二叉树的深度、结点数及叶子数的递归算法========intTreeDepth(BinTreeT){inthl,hr,max;if(T){hl=TreeDepth(T-》lchild);//求左深度hr=TreeDepth(T-》rchild);//求右深度max=hl》hr?hl:hr;//取左右深度的最大值NodeNum=NodeNum+1;//求结点数if(hl==0&&hr==0)leaf=leaf+1;//若左右深度为0,即为叶子。return(max+1);}elsereturn(0);}}

二叉树结点的计算

首先我们知道,前序遍历的规则是:根结点→左子结点→右子结点中序遍历是:左子结点→根结点→右子结点后序遍历是:左子结点→右子结点→根结点那么,对于一棵二叉树,前序遍历的第一个结点一定是这棵树的根结点,即根结点是a。在中序遍历的顺序dgbaechf中,以a分成左、右两边,左边是dgb,右边是echf。所以,这棵树现在可以确定如下:      a     / \dgb echf接下来再分别对左子树和右子树进行类似的操作。对于左子树dgb来说,在前序遍历abdgcefh中找到bdg,证明这子树的根是b,那么现在可以确定的树结构如下:    a   / \  b  echf /dg再看dg,前序遍历中的顺序为dg,所以d是dg这部分子树的根,那么又因为中序遍历的dg顺序也是dg,所以g是右子结点。即:    a   / \  b  echf /d \ g现在看echf这部分子树,前序中顺序是cefh,所以子树根结点是c,那么左子结点是e,右子树是hf:得到:    a   / \  b  c /   / \d  e hf \ g最后只剩下hf部分了,前序遍历中是fh,所以根是f,那么h就是左子结点。现在得到了整棵树:    a   / \  b  c /   / \d  e  f \    / g  h对这棵树再进行后序遍历就行了,结果就是:gdbehfca

二叉树结点计算问题

只有一个答案啊,因为二叉树中n0 = n2 + 1,现在度为2的结点个数是7,所以度为0的结点(也就是叶子)个数为8,并且完全二叉树中没有度为0的结点,因此二叉树的全部结点个数为15 即使是放宽为完全二叉树,树中度为1的结点最多为1,因此也只可能是有15或者16个结点顺便说一句,其实按照刚才的计算,即使是一般二叉树,结点数量最少就是15了,绝不可能会出现9和14的答案,或者说题目十分不全

一棵完全二叉树共有个节点,该二叉树有多少叶子节点怎么算,谢谢

满意答案望远镜8级2010-03-22完全二叉树看是几层的,比如3层完全二叉树,就有7个结点,结点总数是(2的3次方)减1个;叶子结点数是2的(3减1次方)个,就是4个。如果是n层完全二叉树,结点总数是(2的n次方)减1个;叶子结点数是2的(n减1次方)个;会了就非常简单。这回你明白了吗?追问:如果完全二叉树700个结点,有多少叶子结点回答:所谓完全二叉树,是不可能有700个结点的,完全二叉树的第N层,都会是2的N-1次幂个结点,而上一层,则是N-2次幂个结点,所以总节点数应该是2N次幂减1,700不是一个这样的数,所以不会有700个结点。如果是两层,那应该是4-1=3个结点,三层,是8-1=7个结点四层,是16-1=15个结点五层,是32-1=31个结点六层,是64-1=63个结点七层,是128-1=127个结点八层,是256-1=255个结点九层,是512-1=511个结点十层,是1024-1=1023个结点。。。。因此,不会出现700个结点的完全二叉树。追问:可是我做到这个题了啊!回答:你确定是完全二叉树吗?有“完全”二字吗?追问:题目中确实有啊,答案是350回答:正好是总结点数的一半!那这个好记了

告诉了一棵完全二叉树的总结点个数,求叶子结点个数怎么计算谢谢帮助

前九层的结点就有2^9-1=511个

而第九层的结点数是2^(9-1)=256

所以,第十层的叶子结点数是699-511=188个

现在来算第九层的叶子结点个数:

由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。

因为第十层有188个,所以应该去掉第九层中的188 / 2=94个

所以,第九层的叶子结点个数是256-94=162,加上第十层有188个,最后结果是350个。

扩展资料:

二叉树性质

1、 在非空二叉树中,第i层的结点总数不超过

 , i》=1;

2、深度为h的二叉树最多有

 个结点(h》=1),最少有h个结点;

3、对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;

4、具有n个结点的完全二叉树的深度为

 (注:表示向下取整)

5、有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:

若I为结点编号则 如果I》1,则其父结点的编号为I/2;

如果2*I《=N,则其左孩子(即左子树的根结点)的编号为2*I;若2*I》N,则无左孩子;

如果2*I+1《=N,则其右孩子的结点编号为2*I+1;若2*I+1》N,则无右孩子。

6、给定N个节点,能构成h(N)种不同的二叉树。

h(N)为卡特兰数的第N项。h(n)=C(2*n,n)/(n+1)。

7、设有i个枝点,I为所有枝点的道路长度总和,J为叶的道路长度总和J=I+2i

参考资料来源:百度百科-二叉树

二叉树结点计算

1.深度为m的满二叉树有2^m-1个结点.因为满二叉树的定义为:一颗深度为k且有2^k-1个结点的二叉树称为满二叉树.2.若要树深为最小,显然要使除最后一层外的每一层都有尽可能多的结点,即要二叉树为完全二叉树.由二叉树的一个重要性质:具有n个结点的完全二叉树的深度为=6

二叉树叶子结点怎么算二叉树叶子结点如何算

1、结点的度是指,该结点的子树的个数,在二叉树中,不存在度大于2的结点。2、计算公式:n0=n2+1,n0是叶子节点的个数,n2是度为2的结点的个数,n0=n2+1=5+1=6。3、故二叉树有5个度为2的结点,则该二叉树中的叶子结点数为6。