freeCodeCamp/guide/chinese/computer-science/data-structures/graphs/index.md

2.1 KiB
Raw Blame History

title localeTitle
Graphs 图表

图表

图表是可用于解决路由问题的数据结构例如“这两个组件是否已连接”和“从a点到b点的最短路径是什么

图由节点和边组成。 节点(即顶点)是图形中的对象。 节点可以包含诸如节点名称和附加到哪些边缘之类的信息。 边是连接两个节点的链接。 边缘可以包含诸如边缘的重量之类的信息。 如果两个节点通过边连接,则它们是邻居(即相邻)。

根据问题,您可以使用双向(无向)或单向(定向)边。 如果你有一个从a到b的无向边那么从b到a也有一种方法。 如果从a到b有一个有向边则b和a之间不一定有边。

您可以使用图表来制定以下情况:

  • 地理地图
  • 您所在国家/地区的每个城市都是节点
  • 如果两个城市通过公路连接,则它们之间存在边缘 *道路可以是单向或双向(有向和无向边) *重量可以是道路的长度
  • 水流
    • 每个闸门都是一个节点
    • 每条运河都是边缘
      • 水只会沿一个方向流动,因此边缘是直的
      • 重量可以是流量的最大水容量

示例:一个图表,其中包含北欧国家首都的节点,以及(无向)边缘到通过直接道路连接的城市的行车距离。

.     +---------+ 
 .     |Reykjavik| 
 .     +---------+ 
 . 
 . 
 .         529 km   +---------+  1760 km  +--------+ 
 .    +------------+|Stockholm|+---------+|Helsinki| 
 .    |             +---------+           +--------+ 
 .    +                                        + 
 . +----+                    1991 km           | 
 . |Oslo|+-------------------------------------+ 
 . +----+ 
 .         +----------+ 
 .         |Copenhagen| 
 .         +----------+ 

更多信息:

广度优先搜索BFS

深度优先搜索DFS