什么是有根树?

What is a rooted tree?

造一棵有根的树是什么意思?我阅读了 here 中的定义,但即使我们指定一个节点作为根,为什么树只采用以下形状?我的意思是我可以绘制一个有根树,它有 4 个顶点,比下面的 4 个形状更多?对吗?

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

通常情况下,树是递归的;所有树节点本身都是树。 'rooted tree' 只是 child 节点与特殊 parent 标记不同的节点。这可能意味着一个算法不能递归实现,或者有一些特殊的条件来处理根节点。

我想到的例子是一棵 red-black 树。 red-black 树中的节点标记为红色或黑色。但是有一个特殊的规则就是"the root node is always black"。所以我们必须对根进行特殊处理,而且只能对根进行处理。根节点的Children可以是红色;这意味着根节点的第 1 级 children 不能被视为它们自己的 red-black 树中的根节点。

所以您可能会期望 'distinguishing' 代码像

 if(node.isRoot):
    node.Color = black

自由树可以是二叉搜索树中的任何节点;选择哪个节点并不重要,查找和插入之类的操作总是一样的。他们的算法是递归的。自由树算法从不包含 'is it the root node.'

这样的问题