Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tree 对于具有n个节点的完整二叉树,有多少节点是叶节点?_Tree_Nodes_Binary Search Tree - Fatal编程技术网

Tree 对于具有n个节点的完整二叉树,有多少节点是叶节点?

Tree 对于具有n个节点的完整二叉树,有多少节点是叶节点?,tree,nodes,binary-search-tree,Tree,Nodes,Binary Search Tree,powerpoint中的一个答案是n/2离开,但我看到另一个答案是(n+1)/2。我想知道哪一个是正确的,如果有的话,为什么?在最简单的情况下,一个二叉树有一个根节点,一个左节点和一个右节点,有3个节点,其中两个是叶节点。如果节点总数为n,则为(n+1)/2,i是内部节点的总数,即度为1。如果所考虑的树是二叉树,则此关系成立 2i+3=n。根节点和叶节点不是内部节点。 因此,2i+3=1+i+l其中l是叶节点的数量。 这给了我们,i+2=l。我们知道,i=(n-3)/2。因此,l=(n+1)/2

powerpoint中的一个答案是n/2离开,但我看到另一个答案是(n+1)/2。我想知道哪一个是正确的,如果有的话,为什么?

在最简单的情况下,一个二叉树有一个根节点,一个左节点和一个右节点,有3个节点,其中两个是叶节点。如果节点总数为
n
,则为(n+1)/2
i
是内部节点的总数,即度为1。如果所考虑的树是二叉树,则此关系成立

2i+3=n
。根节点和叶节点不是内部节点。 因此,
2i+3=1+i+l
其中
l
是叶节点的数量。
这给了我们,
i+2=l
。我们知道,
i=(n-3)/2
。因此,
l=(n+1)/2
。希望这有帮助

如果有人说n/2是错误的,那么(n+1)/2也应该是错误的。 当分子是奇数时,你不会得到一个自然数,因此你必须考虑地板或CEIL值。 所以,如果你想把它当作(n/2),那么你应该把它收起来,
如果你想把它看作(n+1)/2,那么你应该把它放在最底层。

因为这个问题明确提到了一个完整的二叉树,
n
总是一个奇数。因此
(n+1)/2
不需要天花板或地板。完整二叉树中的节点数并不总是奇数。举个例子,键为“A”的根节点和键为“B”的左节点和键为“C”的右节点。然后左子节点('B')有一个键值为'D'的左节点。这是一个完整的二叉树,但节点数为4,这不是奇数。完整二叉树中的节点数是奇数,但完整二叉树中的节点数可能会有所不同。