数据结构Tree和Graph之间有什么区别?
从学术角度来看,数据结构Tree和Graph之间的本质区别是什么? 那么基于树的搜索和基于图的搜索呢?
树只是Graph的一个限制形式。
树有方向(父/子关系),不包含周期。 它们适用于有向无环图(或DAG)的类别。 所以树木是DAG的限制,一个孩子只能有一个父母。
有一点很重要,树不是递归数据结构。 由于上述限制,它们不能作为递归数据结构来实现。 但是也可以使用任何通常不递归的DAG实现。 我的首选Tree实现是集中式地图表示,并且是非递归的。
图形通常首先搜索呼吸或首先搜索深度。 这同样适用于树。
我不想解释,而是喜欢用照片来展示它。
实时树
现实生活中的图表
是的,地图可以被视为一个图形数据结构。
看到他们这样会让生活变得更轻松。 在我们知道每个节点只有一个父节点的地方使用树。 但图可以有多个前辈(术语父母一般不用于图)。
在现实世界中,您可以使用图表来表示几乎任何东西。 例如,我使用了一张地图。 如果您将每个城市视为一个节点,则可以从多个点进行访问。 导致这个节点的点被称为前辈,这个节点将导致的点被称为后继者。
电路图,房屋计划,计算机网络或河流系统是几个图表的例子。 许多现实世界的例子可以被视为图表。
技术图可能是这样的
树:
图表:
请务必参考下面的链接。 这些将回答几乎所有关于树和图的问题。
参考:
http://www.introprogramming.info/english-intro-csharp-book/read-online/chapter-17-trees-and-graphs/#_Toc362296541
http://www.community-of-knowledge.de/beitrag/data-trees-as-a-means-of-presenting-complex-data-analysis/
维基百科
图与树数据结构之间的差异
树
树是图的特殊形式,即最小连通图,并且在任何两个顶点之间只有一条路径。
树是图的特殊情况,没有回路,没有回路,也没有自回路。
在树中只有一个根节点,每个孩子只有一个父节点。
在树木中,有父母的亲子关系,因此流动可以在那里从上到下或反之亦然。
5.Trees不那么复杂,然后将图形表示为没有循环,没有自循环并且仍然连接。
6.树遍历是图的遍历的一种特例。 树按预订,按顺序和按顺序进行遍历(所有三个都在DFS或BFS算法中)
在树中,通过边在节点之间建立连接有许多规则/限制。
8.Tree属于DAG类别:有向无环图是一种没有周期的有向图。
9.不同类型的树有:二叉树,二叉搜索树,AVL树,堆。
10.Tree应用程序:排序和搜索,如树遍历和二进制搜索。
11.树总是有n-1条边。
树是分层模型。
图表
在图中,可以有多于一条路径,即图可以在节点之间具有单向或双向路径(边)
在图中没有这种根节点的概念。
4.在图表中没有这样的父母子女关系。
图形比树更复杂,因为它可以有循环,循环等
6.Graph通过DFS:深度优先搜索和BFS:广度优先搜索算法遍历
7.在图中,没有通过边连接节点的规则/限制。
8.图形可以是循环或非循环的。
9.Heaps。 主要有两种类型的图:直接图和无向图。
10.图形应用:地图着色,OR(PERT&CPM),算法,图形着色,作业调度等。
12.Graph是一个网络模型。
示例树:
图形:
链接地址: http://www.djcxy.com/p/63793.html上一篇: What's the difference between the data structure Tree and Graph?