图的基本概念

顶点

也称为“节点”,是图的基本部分。它可以有一个名称,我们将称为“键”。一个顶点也可能有额外的信息。我们将这个附加信息称为“有效载荷”。

边##

也称为“弧”,是图的另一个基本部分。边连接两个顶点,以表明它们之间存在关系。边可以是单向的或双向的。如果图中的边都是单向的,我们称该图是有向图。

权重##

可以被加权以示出从一个顶点到另一个顶点的成本。例如,在将一个城市连接到另一个城市的道路的图表中,边上的权重可以表示两个城市之间的距离。

图的描述

图可以由 G 表示,其中\({\rm{G = (V,E)}}\)对于图 G,V 是一组顶点,E 是一组边。每个边是一个元组\({\rm{(v,w)}}\)其中 \(w,v \in V\)。我们可以添加第三个组件到边元组来表示权重。
可以将下面的图表示为六个顶点的集合:
\(V = \{ V0,V1,V2,V3,V4,V5\}\)
和 9 条边的集合:
\(E = \{ (v0,v1,5),(v1,v2,4),(v2,v3,9),(v3,v4,7),(v4,v0,1),(v0,v5,2),(v5,v4,8),(v3,v5,3),(v5,v2,1)\}\)

路径##

图中的路径是由边连接的顶点序列。
从 V3 到 V1 的路径是顶点序列 :\((V3,V4,V0,V1)\),边是:\(\{ (v3,v4,7),(v4,v0,1),(v0,v1,5)\}\)

循环##

有向图中的循环是在同一顶点开始和结束的路径。上图中路径\(\left( {V5,V2,V3,V5} \right)\)。是一个循环。没有循环的图形称为非循环图形。没有循环的有向图称为有向无环图或 DAG

图的抽象数据类型

操作 描述
Graph() 创建一个新的空图
addVertex(vert) 向图中添加一个顶点实例
addEdge(fromVert, toVert) 向连接两个顶点的图添加一个新的有向边
addEdge(fromVert, toVert, weight) 向连接两个顶点的图添加一个新的加权的有向边
getVertex(vertKey) 在图中找到名为 vertKey 的顶点
getVertices() 返回图中所有顶点的列表
in 返回 True 如果 vertex in graph 里给定的顶点在图中,否则返回False
posted @ 2019-01-12 11:31  youngliu91  阅读(100)  评论(0编辑  收藏  举报