1. 图的基本概念
图(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是连通的
(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是~
2. 存储
2.1 邻接矩阵
2.1.1 定义
图G = ( V, E ),V(G) >= 1; G的邻接矩阵A:
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 网络的邻接矩阵
2.1.4 关联矩阵
设G=(V,E)是有n>=1个顶点,e>=0条边的图,G的关联矩阵A:
2.2 邻接表
2.2.1 定义
有向图
无向图
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)若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止
http://blog.csdn.net/matrix_laboratory/article/details/11873841