数据结构与算法(3)图

图的遍历、最小生成树算法

图的遍历

  从图中某一个顶点出发,访问图中的每个结点,并要求只能访问一次,不能重复访问。spa

                               

(1)广度优先遍历排序

       基本思想:首先访问顶点,再访问顶点的所有未访问的邻结点,再访问邻结点的全部结点便可(相似树的层次遍历)。遍历

       广度优先遍历:V1,V2,V3,V4,V5,V6或V1,V4,V3,V2,V6,V5im

(2)深度优先遍历img

       基本思想:首先访问顶点,再访问顶点的每一个邻结点,从该点继续深度优先遍历(相似于树的前序遍历)block

       深度优先遍历:V1,V2,V5,V3,V6,V4或V1,V4,V6,V3,V5,V2生成

图的广度优先遍历和深度优先遍历的结果并不惟一。

最小生成树

                                               

(1)普里姆(Prim)算法       基本思想:选一个顶点开始,查找与顶点相邻且代价(边值)最小的边的另外一个顶点,直到最后。       例如:V1做为顶点,V1->V3->V6->V4,V3->V2->V5,链接图中全部的结点便可。(2)克鲁斯卡尔(Kruskal)算法       基本思想:选择图中最小的边,直到全部结点都连通。       例如:第一小边:V1->V3,第二小边:V4->V6,第三小边:V2-V5,第四小边:V3->V6,第五小边:V3->V2,此时全部的结点都连到了一块儿。(3)算法对比       普里姆算法更加注重的是结点,点与点之间距离最短的优先;克鲁斯卡尔算法更加注重的是边,将边排序,最小边排在前面,最大边排在后面。

相关文章
相关标签/搜索