Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
Algorithm 全二叉树的定义_Algorithm_Data Structures_Tree - Fatal编程技术网

Algorithm 全二叉树的定义

Algorithm 全二叉树的定义,algorithm,data-structures,tree,Algorithm,Data Structures,Tree,我找到了两种资源,它们似乎以两种方式给出了基本定义 (我的一位教授)说: 所有叶在同一级别,所有非叶节点都有两个子节点 (以及95%的互联网用户)表示: 完整二叉树(有时称为真二叉树或平面二叉树)是树中每个节点都有0或2个子节点的树 现在在源代码2之后 变为二叉树,但不符合源代码1,因为叶不在同一级别 所以他们通常认为树木像, 作为完整二叉树 我可能听起来很愚蠢,但我不知道该相信什么。感谢您的帮助。提前感谢。有三个主要概念:(1)完全二叉树(2)完全二叉树(3)完美二叉树。正如您所说,完整二叉

我找到了两种资源,它们似乎以两种方式给出了基本定义

(我的一位教授)说:

所有叶在同一级别,所有非叶节点都有两个子节点

(以及95%的互联网用户)表示:

完整二叉树(有时称为真二叉树或平面二叉树)是树中每个节点都有0或2个子节点的树

现在在
源代码2
之后

变为二叉树,但不符合
源代码1
,因为叶不在同一级别

所以他们通常认为树木像,

作为
完整二叉树


我可能听起来很愚蠢,但我不知道该相信什么。感谢您的帮助。提前感谢。

有三个主要概念:(1)完全二叉树(2)完全二叉树(3)完美二叉树。正如您所说,完整二叉树是一棵树,其中所有节点的阶数为2或0。然而,完全二叉树是一种除最后一级之外的所有级别都被填充的树。此外,完美二叉树是一个完整的二叉树,使得所有级别都处于相同的深度


我对术语complete的直觉是,给定一个固定数量的节点,一个完整的二叉树是通过填充每个级别而形成的,除了最后一个,因为节点的数量可能不是2^n-1。我想问题是,定义的目的是什么?通常,以维基百科中出现的方式定义完整二叉树的原因是能够介绍和证明:

具有I个内部节点的完整二叉树中的节点总数N为2i+1

(根据内部节点数、叶节点数和节点总数,该定理有几个等价公式。)该定理的证明不要求所有叶节点处于同一级别


你的一位教授所描述的是一种我称之为完美二叉树的东西,或者相当于一种完整的二叉树。

如果你去看
图1
,那就是他们声称的完整二叉树。我想我的问题是不同的。你的教授称之为“完整的二叉树”,我会称之为“平衡的二叉树”。@GordonLinoff,但是对于一棵平衡的树,所有的叶子都必须在同一水平上,这有必要吗@IU5er。不是在同一级别,而是在同一级别或级别-1。平衡树是大多数数据库索引的实现方式,一致的高度对性能很重要。这意味着它们是完美的混合体,对吗?@lU5er在您的例子中,是的。然而,有些人可能会用“完成”这个词来指完美,而用“几乎完成”来指我们在这里定义的完成。谢谢你的帮助。:)谢谢你的帮助。:)