数据结构(七)图--图的基本概念及存储结构

来源:互联网 发布:黑马程序员html5视频 编辑:程序博客网 时间:2024/06/10 08:48
 
基本概念:
图(G:由两个集合顶点(V)和边(E)组成。
有根图:在有向图中,若存在一个顶点V,从顶点V有路径可以到达图中其它所有顶点的,那么称这个图为有根图,顶点V为根。
连通:如果两个顶点之间有路径,那么称这两个顶点是连通的。
网络:若将图的每条边都赋上一个权,那么这种图称为网络。
 
       有向图:每条边都是有方向的。
       有向边:有向图的边称为有向边,也称为弧。
入边:在有向图中,边<Vi,Vj>为Vi的出边,Vj入边。Vi起始点,也称为弧尾,Vj为终点,也称为弧头。
       出边
       有向完全图:有n*(n-1)条边的有向图。
       入度:有向图中以某一顶点(V)的为终点的所有边的数目称为这一点的入度。
出度:有向图中以某一顶点(V)的为起点的所有边的数目称为这一点的出度。
简单路径:在有向图中,若一条路径上除了两端点可以相同以外,其余顶点均不相同,那么此路径为一简单路径。
简单回路(简单环):起点和终点相同的简单路径称为简单回路或简单环。
强连通图:在有向图G中,若任意两个不同的顶点间都存在双向的边,那么称G是强连通图。
强连通分量:有向图的极大强连通子图称为该图的强连通分量。
 
       无向图:每条边都是没有方向的。
      
       完全图:图中任意两点之间都有边相连,具有最多的边数。
       无向完全图:有n*(n-1)/2条边的无向图。
       :无向图中关联于某一顶点(V)的所有边的数目称为这一点的度。
       子图
路径:无向图
连通图:如果无向中任意两个不同的顶点之间都连通,那么称这个图G为连通图。
连通分量:无向图G的极大连通子图称为G的连通分量。(任意连通图的连通分量只有一个,而且是其自身,而非连通的无向图有多个连通分量。)
图的存储结构:
       图的最常用的两种存储结构:邻接矩阵和邻接表
       邻接矩阵:用矩阵来表示图中各顶点间的关系。
              如图G(V,E)有n外顶点,则它的n阶方阵为:
                                   1 若(Vi,Vj)或< Vi,Vj >∈E(G)
                 A[i,j]=  {
                                   0         若(Vi,Vj)或< Vi,Vj >不属于E(G)
         如果G为网络(用Wij表示边上的权值):则
                                Wij    若(Vi,Vj)或< Vi,Vj >∈E(G)
                 A[i,j]=  {
                                 0或无穷 若(Vi,Vj)或< Vi,Vj >不属于E(G)
   用来表示无向图的邻接矩阵是对称矩阵,可采用压缩存储只存储对角线以下的元素即可,其空间复杂度为S(n)=O(n2),时间复杂度为O(n2)。