zoukankan      html  css  js  c++  java
  • 第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 条边

  • 相关阅读:
    HTML5学习笔记-2.HTML基础
    HTML5学习笔记-1.网页入门
    Java学习笔记-8.多线程编程
    Java学习笔记-7.Java IO流
    Java学习笔记-6.Java异常处理
    Java学习笔记-5.常用数据结构
    Java学习笔记-4.继承与多态
    Java学习笔记-3.类与对象
    C语言学习笔记-10.文件
    .net core 中threadpool用法
  • 原文地址:https://www.cnblogs.com/lin2001/p/12924140.html
Copyright © 2011-2022 走看看