空二进制搜索树是否有效?

时间:2009-05-01 10:14:25

标签: data-structures binary-tree

关于二元搜索树我有两个问题,都是关于空树的。

  1. 空树(null)有效吗?
  2. 没有子项的根节点是否有效?

7 个答案:

答案 0 :(得分:7)

是的,是的。

答案 1 :(得分:2)

究竟什么是空树当然取决于你的实现,“有效”这个词的含义也是如此,但总的来说,我会对这两个问题说“是”。空树表示您所涉及的实体集是空的情况,而单个节点表示集合包含一个实体的情况。

答案 2 :(得分:2)

没有孩子的单个节点肯定是有效的,并且根据Binary Tree Structure

  

一个(可变的)二叉树,BiTree,可以   处于空状态或非空状态   状态:

     
      
  • 如果为空,则不包含任何数据。
  •   
  • 当它不为空时,它包含一个称为根元素的数据对象,以及两个不同的BiTree对象,称为左子树和右子树。
  •   

为了完整起见,这个Wikipedia entry是术语等非常有用的摘要。

答案 3 :(得分:1)

  

空树(null)是否有效?

如果是空的,则没有树。因此,不会出现有效性问题。

  

没有子项的根节点是否有效?

是。这是一个只有一个元素的球座。

答案 4 :(得分:1)

我认为你把苹果和橘子混合在一起:

  1. null是某些编程语言中的值,它与您的数据结构实现的具体表示有关。
  2. “Empty”是抽象数据结构的一个属性,我们称之为“二叉搜索树”
  3. 现在,树是一个有序的集合:仅此而已。当然,套装可以是空的!这意味着,在您的实施中,类似于:

    MyTree tree = null
    

    代表一棵空树?嗯,这取决于你的模型。 例如,您可以认为空子树应该由没有值的节点表示,并且对叶子的引用无效:在该模型中,null指针从逻辑角度来看是没有意义的。但这只是一个方法!基于哨兵的方法是编程的乐趣,但它的内存是膨胀的:然后你可以用空模型建模空节点。在这种情况下,null指针可以是空树。

答案 5 :(得分:0)

二叉树可以递归地定义为:

A single node with either no children, or with two children - 
each of which is a binary tree.

答案 6 :(得分:0)

是的,两个条件都是真的。 对于二叉树,每个节点可以有零个,一个或两个子节点。 如果树只有一个根节点而没有其他节点,那么它就被称为NULL树。

相关问题