二叉搜索树中的“内部节点”是什么?

48

我正在搜索互联网上关于"Internal Node"一词的定义。我找不到简明的定义。我查看的每一个来源都使用这个术语,但没有给出确切的定义,而它的使用也不能很好地说明内部节点实际上是什么。

以下是我主要查询的两个网站: 链接 假定内部节点是具有两个非空子树的节点,但没有说明原始树中哪些节点是内部节点和外部节点。

http://www.math.bas.bg/~nkirov/2008/NETB201/slides/ch06/ch06-2.html 似乎在暗示内部节点只存在于完全二叉树中,并没有提供有用的信息。

那么什么是内部节点呢?


1
根节点是内部节点吗? - user1012552
1
“Internal”是“非叶子节点”的同义词。如果根节点不是叶子节点,则它是一个内部节点。如果根节点是叶子节点,则它不是一个内部节点。 - JeffE
13个回答

100
     I         ROOT (root is also an INTERNAL NODE, unless it is leaf)
   /   \
  I     I      INTERNAL NODES
 /     / \
o     o   o    EXTERNAL NODES (or leaves)

正如这张美妙的图片所展示的,内部节点是位于树根和叶子之间的节点。请注意,根节点也是内部节点,除非它是树的唯一节点。

在某些站点中所说的内部节点必须有两个子节点是指树必须是完全二叉树,而不是节点必须是内部节点。


这个争论是关于什么的? - Vinko Vrsalovic
5
除非该树仅由根节点组成,否则根节点始终是一个内部节点,这句话是错误的。 - Øyvind
所以,在这个图中,有3个叶子和3个内部节点;那么对于这个公式会发生什么呢:叶子数=内部节点数+1 - Hengameh
1
@Hengameh,该公式仅适用于二叉树。 满树是指每个节点都是叶子节点或者恰好有两个子节点的节点。左侧内部节点没有2个子节点,因此该树不是满树。如果该节点具有右子节点(它将是一个叶节点),则该树将具有4个叶节点,该公式将正确:3个内部节点+ 1 = 4个叶节点。 - adino
因此,换句话说,内部节点是除叶节点之外的所有节点。 - Hzzkygcs
显示剩余3条评论

17

据我理解,它是一个非叶节点。


1
这也是我对内部节点的理解。也许它可能不包括根节点。 - Chris Ballance
内部节点不包括根节点。 - Bill the Lizard

12

来自《算法导论》(Thomas H Cormen编辑):

没有子节点的节点称为 '叶节点'。非叶节点称为 '内部节点'。


1
它在哪一页提到了? - Rajat Saxena

8

+1,同时根节点也是一个内部节点。唯一的情况是,当树只包含一个根节点时(它将成为叶子节点),根节点不是内部节点。 - Hengameh

7

最受欢迎的答案是不正确的。根据Judith Gersting的《计算机科学的数学结构》,一个没有子节点的节点称为树的叶子节点;所有非叶子节点都被称为内部节点。

例如(I = 内部节点): I / \ * I /\ * *


4

内部节点(也称为内部节点、inode或分支节点)是树中具有子节点的任何节点。同样,外部节点(也称为叶节点、终端节点或末端节点)是任何没有子节点的节点。

简洁明了。


1
列出同义词是很有用的,所以加一。 - striving_coder

3

内部节点:一个不是根节点且至少有一个子节点的节点。


1

内部节点 - 至少有一个子节点的节点。 外部节点 - 没有子节点的节点。


1

一般情况下,内部节点是指不是叶子节点(即没有子节点)的任何节点。

在扩展二叉树(亦称比较树)中,由于每个内部节点对应一个比较操作,因此所有内部节点都有两个子节点。《计算机程序设计艺术》第3卷《排序与查找》第5.3.1节讨论和图表(第2版第181页)。顺便提一下,这些树用于表示淘汰赛的配对(与轮空)在本材料的5.4.1节中也有介绍。

文科的图表反映了这种区别,尽管根节点也总是一个内部节点或叶节点,而且还是唯一没有父节点的节点。

在Knuth的信息结构和树的属性处理中存在更广泛的讨论,《计算机程序设计艺术》第1卷《基本算法》第2.3.4.5节讨论树中路径长度,399-406页(第3版),包括许多练习(很多在书后解答)。

值得注意的是,二叉搜索树(其中内部节点也保存单个值,并且最多有两个子节点)略有不同[TAoCP vol.3,section 6.2.2]。尽管如此,术语仍然适用。


0

在二叉树中,内部节点不包括根节点。术语中的完全二叉树表示每个内部节点应该恰好有2个子节点。但是,在简单的二叉树中,每个内部节点最多可以有2个子节点,即它不能包含超过2个节点,但可以少于2个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接