基本数据结构——图

来源:互联网 发布:minitab比较多组数据 编辑:程序博客网 时间:2024/06/05 09:26

4、图

4.1 图的表示

      G(V,E),G表示一个图,V是图G中顶点的集合。

4.2 各种定义

       无向边:若两顶点间的边没有方向,则称为无向边。

       有向边:两顶点间的边有方向,称为有向边,也叫弧。

       无向完全图:任意两点之间都有边

       有向完全图:任意两点之间都有两条方向护卫相反的弧

       网:带有权重的图

       顶点的度:和顶点相连的边的数目。有向图分为入度和出度

       连通图:可以构成环路的图

4.3 图的存储结构

      (1)图的邻接矩阵:用两个数组表示。一个存储顶点,一个存储边


 

无向图邻接矩阵

       邻接边为1,非邻接边为0

       邻接矩阵为对称矩阵。矩阵每行为1的数即为该行对应的顶点的度。如V0的度为3,。



有向图邻接矩阵

    矩阵每行为1的点为该顶点对应出度,每列为1的点为该点对应的入度。每个顶点的度为该点所在行列入度和出度的和。


网的连通图

      邻接边为权值,非邻接边和方向相反值为无穷

      n个顶点e条边时间复杂度为O(n+n*n+e)

     (2)邻接表


        n个顶点e条边时间复杂度为O(n+e)

     4.4 图的遍历

      (1)深度优先遍历(DFS):类似树的前序遍历

               邻接矩阵需要O(n*n),邻接表需要O(n+e)

      (2)广度优先遍历(BFS):类似树的层序遍历

   4.5 最小生成树

    Prim算法:任意选择一点开始,找寻和该点相连的最小边。已该两顶点为起始,选择距离两点间的最小权值,依次遍历,直到所有的点都被遍历到。此时所有被遍历到的边组成的树为最小生成树。算法复杂度O(n2) .

   Kruskral算法:将所有权值按大小顺序排列,找寻非联通区域。所有权值边的组合即为最小生成树。算法复杂度取决于边e,为O(elog2e)

  该部分我自己也不太了解,看了点击打开链接http://www.cnblogs.com/biyeymyhjob/archive/2012/07/30/2615542.html觉得稍微懂点了。直接参照,就不班门弄斧了。

      

0 0
原创粉丝点击