数据结构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?

    下一篇: Finding largest connected tree in a matrix