什么是有根树?

时间:2016-07-28 04:01:04

标签: data-structures tree binary-tree

建立一棵根树是什么意思?我在here 中阅读了这个定义,但即使我们将一个节点指定为根,为什么树只采用下面的形状?我的意思是我可以绘制一个有4个顶点的带根树,下面有4个形状?正确?

enter image description here

1 个答案:

答案 0 :(得分:2)

我认为唯一的区别是树中的一个节点是一个特殊的起始节点。

通常,树是递归的;所有树节点本身都是树。一棵根树'只是一个子节点标记与特殊父节点不同的节点。这可能意味着算法不能递归地实现,或者具有处理根节点的一些特殊条件。

想到的例子是一棵红黑树。红黑树中的节点标记为红色或黑色。但是有一个特殊的规则,即根节点始终是黑色的"。这是一种特殊的处理,我们必须应用于根,只有根。根节点的子节点可能是红色的;这意味着根节点的第一级子节点不能被视为其自己的红黑树中的根节点。

所以你可能期望区分'像

这样的代码
 if(node.isRoot):
    node.Color = black

自由树将是二叉搜索树中的任何节点;你选择哪个节点并不重要,像find和insert这样的操作总是一样。他们的算法是递归的。对自由树的算法从不包括类似于'它是根节​​点的问题。'