图模型:图数据结构

阅读量 ,评论量

一、概念

参考:https://blog.csdn.net/qq_35644234/article/details/57083107

图的定义

图的种类

图的性质

二、存储结构

邻接矩阵

邻接矩阵的表示方式用两个数组来表示图的信息,一个一维数组表示每个数据元素的信息,一个二维数组(邻接矩阵)表示图中的边或者弧的信息。

优点:

缺点:

邻接表

将数组和链表结合。主要是应对邻接矩阵在顶点多边少的时候,空间浪费的问题。

节点通过一个头结点类型的一维数组来保存,每个节点的所有邻接点组成一个链表后缀在其头结点上。

具体来说,其中每个头结点的firstarc都是指向一条依附在该节点的边的信息(表结点),表结点的adjvex表示该边的另外一个节点在一维数组中的下标,weight用于存储边的权重,nextarc指向的是下一条依附在该节点的边的信息。

邻接表数据结构

优点:

缺点:

十字链表

有向图的一个专有的链表结构,用于解决节点入度计算难的问题。

邻接多重表

三、相关算法

图的遍历

从图中某一个顶点出发遍访图的其余所有顶点,且使所有顶点被访问且只访问一次。这个过程,就叫做图的遍历(Traversing Graph)。

最小生成树

把构造连通网的最小代价生成树称为最小生成树(Minimum Cost Spanning Tree)。

普里姆(Prim)算法

克鲁斯卡尔(Kruskal)算法

最短路径

非网图的最短路径,是指两顶点之间经过的边数最少的路径。网图的最短路径,是指两顶点之间经过的边上的权值之和最小的路径。路径上的第一个源点,最后一个顶点是终点。

拓扑排序

关键路径

折叠文本说明