zoukankan      html  css  js  c++  java
  • 数据结构与算法(3)图

    图的遍历、最小生成树

    图的遍历

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

                                   

    (1)广度优先遍历

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

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

    (2)深度优先遍历

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

           深度优先遍历: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)算法对比
           普里姆算法更加注重的是结点,点与点之间距离最短的优先;克鲁斯卡尔算法更加注重的是边,将边排序,最小边排在前面,最大边排在后面。

  • 相关阅读:
    Linux—服务管理三种方式(chkconfig和service和systemctl)
    Linux bash篇(二 操作环境)
    Linux bash篇,基本信息和变量
    Linux 磁盘管理篇,设备文件
    Linux 磁盘管理篇, 内存交换空间
    Linux 磁盘管理篇,目录管理(一)
    Linux 磁盘管理篇, 目录管理(二)
    Linux 磁盘管理篇,连接文件
    Linux 磁盘管理篇(一 磁盘分区)
    Linux 磁盘管理篇,开机挂载
  • 原文地址:https://www.cnblogs.com/sweetyu/p/5627180.html
Copyright © 2011-2022 走看看