从学术上讲,数据结构Tree和Graph之间的本质区别是什么?那么基于树的搜索和基于图的搜索呢?
答案 0 :(得分:129)
树只是图表的限制形式。
树有方向(父/子关系),不包含周期。 它们适用于有向无环图(或DAG)类别。 因此,树木是DAG,其限制是儿童只能拥有一个父母。
重要的是要注意一点,树不是递归数据结构。 由于上述限制,它们不能实现为递归数据结构。但是也可以使用通常不是递归的任何DAG实现。 我首选的Tree实现是一个集中的地图表示,并且不是递归的。
图表通常是首先搜索呼吸或首先搜索深度。这同样适用于Tree。
答案 1 :(得分:90)
而不是解释我更喜欢在图片中显示它。
实时树
现实生活中使用的图表
是的,地图可以显示为图形数据结构。
这样看待他们会让生活更轻松。树在我们知道每个节点只有一个父节点的地方使用。但是图形可以有多个前辈(术语父级通常不用于图形)。
在现实世界中,您几乎可以使用图表来表示任何事物。例如,我使用了地图。如果您将每个城市视为一个节点,则可以从多个点进行访问。导致此节点的点称为前置节点,此节点将导致的点称为后继节点。
电路图,房屋,计算机网络或河流系统的计划是图表的更多例子。许多现实世界的例子可以被视为图表。技术图可能是这样的
树:
图表:
请务必参阅以下链接。这些将回答几乎所有关于树木和图表的问题。
参考文献:
答案 2 :(得分:3)
在树中,每个节点(根节点除外)恰好具有一个前任节点和一个或两个后继节点。可以使用有序,前序,后序和广度优先遍历进行遍历。树是一种无周期的特殊图形,因此称为DAG(有向无环图)。树是一个层次模型。
在图中,每个节点具有一个或多个前任节点和后继节点。通过使用深度优先搜索(DFS)和广度优先搜索(BFS)算法遍历该图。图具有循环,因此它比树更复杂。图是一种网络模型。图有两种:有向图和无向图。
答案 3 :(得分:2)
树是图形的特殊形式,即最小连通图形,并且在任意两个顶点之间只有一条路径。
在图表中可以有多个路径,即图表可以在节点之间具有单向或双向路径(边缘)
您还可以看到更多详细信息: http://freefeast.info/difference-between/difference-between-trees-and-graphs-trees-vs-graphs/
答案 4 :(得分:1)
树很明显:它们是由带子节点的节点组成的递归数据结构。
地图(又名字典)是键/值对。给地图一个键,它将返回相关的值。
地图可以使用树实现,我希望你不会发现这种混乱。
更新:混淆“地图”的“图表”非常令人困惑。
图表比树木更复杂。树意味着递归的父/子关系。有一些自然的遍历树的方法:深度优先,广度优先,水平顺序等。
图形可以在节点之间具有单向或双向路径,可以是循环的或非循环的等等。我会认为图形更复杂。
我认为粗略搜索任何体面的数据结构文本(例如“算法设计手册”)会提供比任何数量的SO答案更多更好的信息。我建议你不要采取被动路线,并开始为自己做一些研究。
答案 5 :(得分:1)
树基本上是无向图,不包含循环,因此可以说树是图的更受限形式。 然而,树和图在实现各种算法时有不同的应用。 例如,图形可用于模型路线图,而树可用于实现任何分层数据结构。
答案 6 :(得分:0)
树中的一个根节点,一个子节点只有一个父节点。但是,没有根节点的概念。另一个区别是,树是层次模型,而图是网络模型。
答案 7 :(得分:0)
树是有图的:
a)去除了边缘方向,它是连接的和非循环的
- 您可以删除它是非循环的假设
- 如果它是有限的,您可以选择删除它已连接的假设
醇>b)每个顶点,但一个根,根,具有indegree 1
c)root具有indegree 0
- 如果只有有限数量的节点,您可以删除根具有indegree 0的假设或假设 除根之外的节点具有度1
醇>
参考:http://www.cs.cornell.edu/courses/cs2800/2016sp/lectures/lec27-29-graphtheory.pdf
答案 8 :(得分:0)
其他答案很有用,但是它们缺少每个属性:
可以是有向的或无向的(适用于图形中的所有边)
根据{{3}}:
例如,如果顶点表示一个聚会上的人,并且如果两个人握手,则两个人之间存在一条边,则此图是无向的,因为只有B也握手时,任何人A才能与人B握手。相反,如果从人A到人B的任何一条边都对应于对B的钦佩,则该图是有向的,因为钦佩不一定是往复的。
以上属性有些重叠。具体来说,其余两个属性暗含了最后两个属性。但是,所有这些都值得一提。
答案 9 :(得分:0)
简单的概念是树没有循环形成及其单向,而图形成循环,在某些情况下是双向的,在另一些情况下是单向的。
答案 10 :(得分:-1)
在数学中,图形是一组对象的表示,其中一些对象通过链接连接。互连对象由称为顶点的数学抽象表示,连接一些顶点对的链接称为边。[1]通常,图形以图解形式描绘为顶点的一组点,由边线的线或曲线连接。图是离散数学研究的对象之一。