图(Graph)——基本概念、存储、遍历

. 图的基本概念

图(Graph):G = ( V,E )

V(G):顶点

E(G):边

(1)边:<v,w>

(2)权:与图的边或弧相关的个数

(3)子图:如果图G(V,E)和图G‘(V’,E‘),满足:V’属于V &&  E’属于E
(4)顶点的度:
    无向图:与顶点相连的边数
    有向图:

      入度:以该顶点为头的弧的数目
       出度:以该顶点为尾的弧的数目

(5)路径:顶点的序列V={Vi0,Vi1,……Vin},满足(Vij-1,Vij)属于E 或 <Vij-1,Vij>属于E,(1<j<=n)

路径长度——沿路径边的数目或沿路径各边权值之和
回路——第一个顶点和最后一个顶点相同的路径叫~
简单路径——序列中顶点不重复出现的路径叫~
简单回路——除了第一个顶点和最后一个顶点外,其余顶点不重复出现的回路叫~
(6)连通:从顶点V到顶点W有一条路径,则说V和W是连通的

《图(Graph)——基本概念、存储、遍历》

(1)有向图:边有方向,<v,w> != <w,v>

(2)有向完备图:n个顶点的有向图最大边数是n(n-1)

(3)无向图:边无方向,<v,w> = <w,v>

(4)无向完备图:n个顶点的无向图最大边数是n(n-1)/2
(5)连通图:图中任意两个顶点都是连通的叫~
(6)连通分量:非连通图的每一个连通部分叫~
(7)强连通图:有向图中,如果对每一对Vi,Vj属于V, Vi!=Vj,从Vi到Vj 和从Vj到 Vi都存在路径,则称G是~

《图(Graph)——基本概念、存储、遍历》《图(Graph)——基本概念、存储、遍历》

2. 存储

2.1 邻接矩阵

2.1.1 定义

图G = ( V, E ),V(G) >= 1; G的邻接矩阵A:

《图(Graph)——基本概念、存储、遍历》

《图(Graph)——基本概念、存储、遍历》

2.1.2 特点

(1)无向图的邻接矩阵对称,可压缩存储;有n个顶点的无向图需存储空间为n(n+1)/2
(2)有向图邻接矩阵不一定对称;有n个顶点的有向图需存储空间为n²
(3)无向图中顶点Vi的度TD(Vi)是邻接矩阵A中第i行元素之和
(4)有向图中,
               顶点Vi的出度是A中第i行元素之和
               顶点Vi的入度是A中第i列元素之和
2.1.3 网络的邻接矩阵
《图(Graph)——基本概念、存储、遍历》

《图(Graph)——基本概念、存储、遍历》

2.1.4 关联矩阵

设G=(V,E)是有n>=1个顶点,e>=0条边的图,G的关联矩阵A:

《图(Graph)——基本概念、存储、遍历》

2.2 邻接表

2.2.1 定义

有向图

《图(Graph)——基本概念、存储、遍历》

无向图

《图(Graph)——基本概念、存储、遍历》

2.2.2 特点

(1)无向图中顶点Vi的度为第i个单链表中的结点数
(2)有向图中
          顶点Vi的出度为第i个单链表中的结点个数
          顶点Vi的入度为整个单链表中邻接点域值是i的结点个数
(3)逆邻接表:有向图中对每个结点建立以Vi为头的弧的单链表

3. 遍历

3.1 深度优先(DFS)

(1)从图的某一顶点V0出发,访问此顶点;然后依次从V0的未被访问的邻接点出发,深度优先遍历图,直至图中所有和V0相通的顶点都被访问到;

(2)若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止

3.2 广度优先(BFS)

(1)从图的某一顶点V0出发,访问此顶点后,依次访问V0的邻接点(未曾访问);

(2)然后分别从这些邻接点出发,广度优先遍历图,直至图中所有已被访问的顶点的邻接点都被访问到;

(3)若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止

    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/j__king/article/details/39493917
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞