关于二元搜索树我有两个问题,都是关于空树的。
答案 0 :(得分:7)
是的,是的。
答案 1 :(得分:2)
究竟什么是空树当然取决于你的实现,“有效”这个词的含义也是如此,但总的来说,我会对这两个问题说“是”。空树表示您所涉及的实体集是空的情况,而单个节点表示集合包含一个实体的情况。
答案 2 :(得分:2)
没有孩子的单个节点肯定是有效的,并且根据Binary Tree Structure:
一个(可变的)二叉树,BiTree,可以 处于空状态或非空状态 状态:
- 如果为空,则不包含任何数据。
- 当它不为空时,它包含一个称为根元素的数据对象,以及两个不同的BiTree对象,称为左子树和右子树。
为了完整起见,这个Wikipedia entry是术语等非常有用的摘要。
答案 3 :(得分:1)
空树(null)是否有效?
如果是空的,则没有树。因此,不会出现有效性问题。
没有子项的根节点是否有效?
是。这是一个只有一个元素的球座。
答案 4 :(得分:1)
我认为你把苹果和橘子混合在一起:
null
是某些编程语言中的值,它与您的数据结构实现的具体表示有关。现在,树是一个有序的集合:仅此而已。当然,套装可以是空的!这意味着,在您的实施中,类似于:
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树。