图的定义

2020-04-10  本文已影响0人  rensgf

1、定义及相关概念

2、存储结构

(1)邻接矩阵

结点数为n的如邻接矩阵A是n*n的。顶点编号,若有向边<vi,vj>∈E,则 A[i][j]=1,否则为0;


2 邻接矩阵
3 邻接矩阵定义方法 顶点类型,边类型,顶点数组,边二维数组,顶点数目,边数目

空间复杂度为O(n²),适用于稠密图。矩阵运算Aⁿ的含义:Aⁿ[i][j]表示从顶点vi到vj长度为n的路径的条数。

(2)邻接表

对于稀疏图,邻接矩阵会有很多浪费。
定义:为每一个顶点建立一个单链表存放与他相邻的边。两种表

(3)十字链表

邻接表找结点的入边要遍历所有链表,太麻烦。十字链表便于寻找入边和出边。定义:有向图的一种链式储存结构。
firstin入边单链表的头指针; firstout出边单链表的头指针;


8 十字链表结点结构

tailvex尾域弧尾;headvex头域弧头;hlink指针域,弧头相同的下一条边;tlink指针域,弧尾相同的下一条边;info边的权重。


9 十字链表语言结构

(4)邻接多重表

邻接表删除无向图结点时,要遍历两个链表。无向图的链式存储结构。
ivex该边的第一个端点;ilink与该端点相邻的下一个边表结点的指针;jvex第二个端点; jlink与第二个端点相邻的下一个边表结点的指针。


10 邻接多重表结点结构
11 邻接多重表语言结构

3、遍历方法

(1)DFS

(2)BFS

图片.png

4、应用

(1)最小生成树

(2)最短路径

(3)拓扑排序

有向无环图简称DAG;AOV顶点表示一个活动;拓扑排序对DAG所有顶点的排序。


拓扑排序算法思想

(4)关键路径

上一篇 下一篇

猜你喜欢

热点阅读