Data structures 什么是有根的树?

Data structures 什么是有根的树?,data-structures,tree,binary-tree,Data Structures,Tree,Binary Tree,建造一棵有根的树意味着什么?我在中阅读了定义,但即使我们指定一个节点作为根,为什么树只采用下面的形状?我的意思是我可以画一棵有根的树,它有4个顶点,比下面的4个形状还要多?对吧? 我认为唯一的区别是树中的一个节点是一个特殊的起始节点 通常,树是递归的;所有树节点本身都是树。“根树”只是其中子节点的标记与特殊父节点的标记不同的树。这可能意味着一个算法不能递归实现,或者有一些处理根节点的特殊条件 我想到的例子是一棵红黑相间的树。红黑树中的节点标记为红色或黑色。但是有一个特殊的规则“根节点总是黑色的”

建造一棵有根的树意味着什么?我在中阅读了定义,但即使我们指定一个节点作为根,为什么树只采用下面的形状?我的意思是我可以画一棵有根的树,它有4个顶点,比下面的4个形状还要多?对吧?


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

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

我想到的例子是一棵红黑相间的树。红黑树中的节点标记为红色或黑色。但是有一个特殊的规则“根节点总是黑色的”。所以这是一种特殊的处理方法,我们必须对根进行处理,而且只对根进行处理。根节点的子节点可以是红色的;这意味着根节点的第一级子节点不能被视为其自身红黑树中的根节点

因此,您可能会期望像这样的“区分”代码

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

自由树是二叉搜索树中的任意节点;选择哪个节点无关紧要,像查找和插入这样的操作总是相同的。他们的算法是递归的。自由树上的算法从不包含“它是根节点吗?”这样的问题。

你还能画什么形状?我想只是从左到右改变方向。。你们是在暗示,无论我改变方向还是翻转图形都是一样的吗?好吧,“一样”到不会造成真正的区别(当然取决于上下文)。这叫做同构。你可以把图形颠倒过来,但它仍然是相同的图形(对于相同的定义)。好的,我知道了。谢谢:)