作业帮 > 综合 > 作业

一个完全二叉树中,如果叶子结点的个数为n.则这颗二叉树一共有几个结点

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 20:49:19
一个完全二叉树中,如果叶子结点的个数为n.则这颗二叉树一共有几个结点
一个完全二叉树中,如果叶子结点的个数为n.则这颗二叉树一共有几个结点
完全二叉树就是结点的深度相差不超过1.
叶子结点就是没有孩子的结点.
经验证,coolisen的答案是正确的。
对于争论。我以为,树是特殊的图,没必要在概念上过于纠结。
我感觉应该是2n-(!(n&1)) (&是二进制按位取与,是逻辑非)
是因为当时我想用完全二叉树解决这样的问题:
后来发现,建成完全二叉树,程序会很不好处理。
应该建成满2叉树,让叶子节点数为2^(int)log(2,n),多余的用0补齐,这样就完美的解决这个问题了。思路见2楼的追问。
这个周末结贴,
有二叉树基本性质n0=n2+1和总结的个数=n0+n1+n2,=》节点个数=n0+n0-1+n1,即2n0-1+n1
其中n0为度为0的节点,也就是叶子节点,n1为度为1的节点,由于完全二叉树中度为1的节点只有1个,或者没有,并且这两种情况普遍存在,故节点数=2n0-1+1或者2n0-1,由于n0=n,故二叉树共有2n或者2n-1个节点.