二叉搜索树是否具有未显示的空子项?

时间:2014-03-17 15:38:54

标签: data-structures tree binary-search-tree

在我发现的每个diagram二进制搜索树中,似乎有一些节点只有一个子节点。这些节点实际上只有一个子节点,还是有另一个未显示的空子节点。例如,14是否有一个未显示的右空子项?这将使树遍历变得更有意义。

1 个答案:

答案 0 :(得分:2)

是的,每当没有正好有2个子节点时,对其余子节点的引用/指针将包含空值(或者无论用什么语言实现的等价值)。

因此,14将有一个空的右子女,而1,4,7和13将有左和右孩子。

我只能说一小部分语言,但你肯定需要某种“无所事事”的概念,这些概念将包含在内。


以上假设您的结构类似于:

node
   node left
   node right
   type value

作为这种表示的替代方法(虽然我不能说我曾经见过这用于二叉树 - 只是提出了这种可能性),你也可以有一个子数组,例如 - 一个2号数组表示左右儿童,1号阵列只表示1个孩子 - 你可能有一个标志,表明它是左或右孩子(或者,因为它是BST,你可以比较它来确定它是什么),大小为0的数组意味着没有孩子。请注意,此数组不需要包含任何空值。