• 第12周 图的表示法、遍历


    图的存储结构:1. 邻接矩阵表示法 2. 邻接表表示法

    邻接矩阵表示法(数组表示法):适用稠密图

       无向图的邻接矩阵是对称的;

       有向图的邻接矩阵可能是不对称的。

       在有向图中,(出行入列)

             第 i 1 的个数 = 顶点 i 的度;

             第 j 1 的个数 = 顶点 j 的度。

       在无向图中,

             第 i 行(列)1 的个数 = 顶点 i 的度

    邻接表表示法:适用稀疏图

    无向图的邻接表:

    有向图的邻接表有:邻接表(出边表);逆邻接表(入边表)。

    图的遍历:深度优先搜索 DFS;广度优先搜索 BFS

    深度优先搜索 DFS: (递归过程,类似于先序遍历。非递归的可借助栈实现)     

           (1)从图中某个顶点 v0出发,首先访问 v0。

           (2)找出 v0 的第一个未被访问的邻接点 v1,然后访问 v1。以 v1为新顶点,重复此步骤,直到刚访问过的顶点没有未被访问的邻接点为止。

           (3)返回前一个访问过的且仍有未被访问的邻接点的顶点,找出该顶点的下一个未被访问的邻接点,访问该顶点,然后执行步骤(2)。

    广度优先搜索 BFS:(可借助队列实现,类似于层序遍历)

            (1)从图中某个顶点 v0出发,首先访问 v0。

           (2)依次访问 v0的各个未被访问的邻接点。

           (3)分别从这些邻接点出发,依次访问它们的各个未被访问的邻接点。

           (4)重复(3),直到所有顶点均没有未被访问的邻接点为止。

    访问时应保证:如果 vi和 vk为当前顶点,且 vi在 vk之前被访问,则 vi的所有未被访问的邻接点应在 vk的所有未被访问的邻接点之前访问。

     
    图的连通性问题 —— 最小生成树:普利姆(Prim)算法;克鲁斯卡尔(Kruskal)算法
     
     普利姆算法适合求(边稠密连通网)的最小生成树

     克鲁斯卡尔算法适合求(边稀疏连通网)的最小生成树

    具有 n 个顶点的图其生成树有且仅有 n-1 条边

  • 相关阅读:
    Trie树详解及其应用
    最长回文字符串_Manacher算法_(O(n))
    设置VisualStudio以管理员身份运行
    wcf使用JetEntityFrameworkProvider.dll写access数据库时,报"操作必须使用一个可更新的查询"错误的解决办法
    data:image字符转byte[]
    ID为XXXX的进程当前未运行
    在Windows2003 server 64位系统上使用ArcEngine开发的WCF服务
    关于position的relative和absolute分别是相对于谁进行定位的
    sql语句进行写数据库时,字符串含有'的处理方式
    EF中关于日期字值的处理
  • 原文地址:https://www.cnblogs.com/lin2001/p/12924140.html
Copyright © 2020-2023  润新知