图的种类及储存方式

一.图的种类(以下的分类不是并列的)

    1.有向图:图中边的方向是一定的,不能逆序走。

    2.无向图:图中的边没有方向,可以逆序走。没有正负方向

    3.完全图:完全图:对于顶中的每一个顶点,都与其他的点有边直接相连

                  无向完全图:编辑任意一个具有n个结点的无向简单图,其边数小于等于n*(n-1)/2;我们把边数恰好等于n*(n-1)/2的n个结点的无向图称为完全图。

                  有向完全图:在一个n个结点的有向图中,最大边数为n*(n-1)。

    4.稀疏图和稠密图:一般的对于一个图来说,边的数目多的就是稠密图,边的数目少的就是稀疏图。

    5.二部图与完全二部图(二部图也就是二分图)

      二分图的概念:简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。

                         两个子集:A,B;

                         性质满足:A∩B=∅,A∪B=V,这就是二分图。

    6.图的生成树:把图中的n个点,和图中的n-1条边挑出来,如果这n-1条边能把这n个点连起来,那这就是图的一个生成树

    7.有向网,无向网:网就是加权的图

    8.活动网络:AOV图:顶点是活动,有向边表示活动之间的前驱后继关系--拓扑排序

                     AOE图:E,也就是用边表示活动,用边表示的目的是利用边的权值,比如用边的权值表示最长时间--关键路径

二:  图的存储表示

1. 邻接矩阵

    也就是用jz[i][j]表示i--j的连通情况,可以表示权值,也可以表示是否连通。

2.邻接表:就是把同一个顶点出发的边的链接储存在同一个边链表中,边链表的每一个结点代表一条边,称为边结点,边结点包括的信息可以自己确定。

              一种方法:g[i][j]代表从i出发的第j条边的编号,对应着edge数组中的储存着边的信息,可以直接从g[i]得到从i出发的边的数目。

              另一种就是边表了。

3.边表:就不介绍了,因为一直以来我都是用“邻接矩阵”和“边表”的,比较熟悉

原文地址:https://www.cnblogs.com/c1299401227/p/5400614.html