数据结构——图

1. 图通常表示为 G(V,E)

V 代表图G中顶点(数据元素)的集合

E 表示图G中边(顶点间的逻辑关系,可以为空)的集合

2. 概念解释

图按照边有无方向可以分为有向图无向图,无向图的边成为,弧分为弧头(带箭头的一端)和弧尾,

图按照边或弧的多少分为稀疏图稠密图

任意两个顶点之间都存在边称为连通图

无向图中的极大连通子图称为连通分量

连通图的生成树是一个极小的连通子图,他含有图中所有n个顶点,但只有构成生成树的n-1个边。

但有n-1条边不代表一定是生成树。如果有有小于n-1条边,则不是连通图,若多于n-1条边,必将构成一个环。

若一个有向图恰好有一个顶点入度为0,其余顶点入度为1, 则该图为有向树

一个有向图的生成森林由若干有向树组成。

图中顶点之间有临接点,依附的概念,边的个数称为,有向图分为入度出度

图中的边带有权重则称为

3. 图的储存结构

3.1 邻接矩阵

无向图:若顶点数为n,则矩阵大小为n*n,若i与j之间有边,则G[i][j]值为1,反之为0。

有向图:出度的弧为0,入度的弧为1。

网:若i与j之间有边,则G[i][j]值为该边的权重,若无边,G[i][j]为无穷,若i=j,则为0.

图的应用:

最短路径:迪杰斯特拉(Dijkstra) 算法和弗洛伊德(Floyd) 算法。

普利姆(Prim)算法

图的应用:

关键路径

AOE网:Activity on edge network

若在带权的有向图中,以顶点表示事件,以有向边表示活动,边上的权值表示活动的开销(如该活动持续的时间),则此带权的有向图称为AOE网。

一般情况下,工程只有一个开始,一个结束,

所以正常情况下,AOE只有一个源点一个汇点。

关键路径:从源点到汇点具有最大长度的路径。

关键活动:关键路径上的活动(边)。

拓扑排序:

  1. 从 DAG 图中选择一个 没有前驱(即入度为0)的顶点并输出。
  2. 从图中删除该顶点和所有以它为起点的有向边。
  3. 重复 1 和 2 直到当前的 DAG 图为空或当前图中不存在无前驱的顶点为止。后一种情况说明有向图中必然存在环。
  4. 通常,一个有向无环图可以有一个或多个拓扑排序序列。
  5. 拓扑排序通常用来“排序”具有依赖关系的任务

你可能感兴趣的:(数据结构)