相关定义和术语:
集合: 数据元素间的关系是同属一个集合。
线性结构:结点间的关系是线性关系,除开始结点和终端结点外,每个结点只有一个直接前趋和直接后继。
树形结构:结点间的关系实质上是层次关系,同层上的每个结点可以和下一层的零个或多个结点(即孩子)相关,但只能和上一层的一个结点(即双亲)相关(根结点除外)。
图(Graph)结构:对结点(图中常称为顶点)的前趋和后继个数不加限制的,即结点之间的关系是任意的。 图是一种较线性表和树更为复杂的非线性结构。是对结点的前趋和
后继个数不加限制的数据结构,用来描述元素之间“多对多”的关系。
1 图及其基本运算
图的定义 :
图是由一个顶点集 V 和一个弧集 R构成的数据结构。
Graph = (V, R )
V = { x | x 某个数据对象} , 是顶点的有穷非空集合;
R——边的有限集合
R = {(x, y) | x, y V } 无向图 或
R = {<x, y> | x, y V && Path (x, y)}有向图是顶点之间关系的有穷集合,也叫做边(edge)集合。Path (x, y)表示从 x 到 y 的一条单向通路, 它是有方向的。x弧尾,y弧头。
有向图与无向图 :
有向图中:边用<x, y>表示,且x与y是有序的。
a. 有向图中的边称为“弧”
b. x——弧尾或初始点 y——弧头或终端点
无向图:边用(x, y) 表示,且顶x与 y是无序的。
完全图:
在具有n 个顶点的有向图中,最大弧数为 n(n-1)
在具有n 个顶点的无向图中,最大边数为 n(n-1)/2
顶点的度:
无向图:与该顶点相关的边的数目
有向图:入度ID(v) :以该顶点为头的弧的数目
出度OD(v) :以该顶点为尾头的弧的数目
在有向图中