zoukankan      html  css  js  c++  java
  • 大话数据结构笔记——第七章 图

    1 图的定义

     

     

     1)各种图定义

     

     

     

     

     

     

     2)图的顶点与边间关系

     

     

     

     3)连通图相关术语

     

     

     

     

     

     4)图的定义与术语总结

    2 图的抽象数据类型

    3 图的存储结构

     

     1)邻接矩阵

     

     

     

     

     

     时间复杂度O(n)。

     2)邻接表

     

     

     

     

     3)十字链表

     

     4)邻接多重表

     

     

     

     5)边集数组

     

     

    4 图的遍历

     1)深度优先遍历

     

     

     

     

     2)广度优先遍历

     

    5 图的最小生成树

     

    通过前面的学习,对于含有 n 个顶点的连通图来说可能包含有多种生成树,例如 1 所示:

    普利姆算法(Prim):

    先选中一个结点为一个整体,在剩下所有结点与该整体的所有边中选一条最短的边,将这条新出现边的一个顶点归入这个整体中,然后在新合成的整体与剩下的所有结点的所有边中选一条最短的边,将这条新出现边的一个顶点归入这个整体中,以此类推,直到所有结点遍历完。(以结点为目标构建最小生成树,适合边数多的稠密图)

    【步骤】

    (1)从图中选取一个节点作为起始节点(也是树的根节点),标记为已达;初始化所有未达节点到树的距离为到根节点的距离

    (2)从剩余未达节点中选取到树距离最短的节点i,标记为已达;更新未达节点到树的距离(如果节点到节点i的距离小于现距离,则更新);

    (3)重复步骤2直到所有n个节点均为已达。

    克鲁斯卡尔算法(Kruskal):

    在带权连通图中,不断地在边集合中找到最小的边,如果该边满足得到最小生成树的条件,就将其构造,直到最后得到一颗最小生成树。(以边为目标构建最小生成树,适合边数少的稀疏图)

    【步骤】

    (1)将所有边的边权从小到大依次排列,并且均标为未选

    (2)选择最小的未选边

    (3)如果该边与前面所选的边无法构成回路,则选中该边,并标为已选;如果该边与前面所选的边构成了回路,则不选该边,并标为已选

    (4)重复(2)(3),直到所有点之间都有边相连;

     

     

     

    6 最短路径

     

    迪杰斯特拉算法(Dijkstra):

    迪杰斯特拉最最朴素的思想就是按长度递增的次序产生最短路径。即每次对所有可见点的路径长度进行排序后,选择一条最短的路径,这条路径就是对应顶点到源点的最短路径。

    迪杰斯特拉算法总共就干了两件事:

    【1】不断运行广度优先算法找可见点,计算可见点到源点的距离长度

    【2】从当前已知的路径中选择长度最短的将其顶点加入S作为确定找到的最短路径的顶点。

    看完这段视频就可以清楚迪杰斯特拉算法的过程:迪杰斯特拉算法讲解

    弗洛伊德算法(Floyd):

    https://www.cnblogs.com/ssyfj/p/9495960.html

     

     

     

     

                     ········

     

    7 拓扑排序

     1)拓扑排序介绍

     

     

     2)拓扑排序算法

     

     

     

     

    8 关键路径

     

     

     1)关键路径算法原理

     2)关键路径算法

     

     

     

     

     

     

     

     

    9 总结

     

  • 相关阅读:
    C#获取上级文件夹路径
    C#string与byte数组转行
    C#BAT与VBS文件的创建和执行调用
    C#生成条形码
    C#根据生日计算所属十二星座
    C#获取某一字符串第N到第N+1空格的字符
    WPF的DataGrid表格动态加载合并列
    WPF递归设置CheckBox与TextBox禁用联动
    WPF基础知识
    WPF Popup绑定目标控件上下左右位置
  • 原文地址:https://www.cnblogs.com/superjishere/p/12318047.html
Copyright © 2011-2022 走看看