zoukankan      html  css  js  c++  java
  • 数据结构与算法 Python 实现 第七章 图

    7.1 概念 性质 和实现

    7.1.1 定义和图示

    一个图就是一个二元祖,也用图示来表示一个图
    G = (V, E)
    <vi, vj>表示有方向的边,i->j
    (vi, vj)表示无方向的边

    7.1.2 图的一些概念和性质

    完全图
    若图有n个顶点,显然,完全有向图有n(n-1)条边, 完全无向图有n(n-1)/2条边
    也就是说,E的规模和V平方的规模是接近的。

    顶点的度:
    与他邻接的边的条数
    入度:指向该顶点的边数
    出度:指出该顶点的边数

    e = 1/2 * 所有顶点度数的和

    路径和相关性质
    回路:起点和终点相同
    简单回路:只有起点和终点相同的回路
    简单路径:内部没有回路,简单回路也是简单路径

    有根图:
    存在一个节点,到其他节点都有路径
    根不一定唯一

    连通图:
    连通:两个点可以互相到达
    连通无向图:任意俩点都连通
    强连通有向图:任意两个点连通

    显然,完全无向图都是连通图。
    完全有向图都是强连通有向图。

    性质7.2 (最小连通无向图的边数)n个点的最小连通无向图有n-1条边

    性质7.3 (最小有根图的边数)n个点的最小有根图有n-1条边

    子图,连通子图
    这一节说实话比较绕,就不写了

    带权图和网络
    带权的连通无向图=网络
    weighted connected unoriented graph = network

    7.1.4 图的表示和实现

    邻接矩阵
    显然,无向图的邻接矩阵一定是对称矩阵。
    通常,顶点到自身是0,也就是说,邻接矩阵的对角线元素是0,没有边的记为∞。

    由于显然,邻接矩阵很多时候会比较稀疏,很浪费

    **图的邻接表表示
    实际中,人们经常用一个顺序表表示图中的顶点,每个顶点关联一个list node

    7.3 基本图算法

    7.3.1 图的遍历

    DFS and BFS

    7.3.2 生成树

    7.4最小生成树

    7.4.2 Kruskal 算法

    7.4.3 Prim算法

    7.5 最短路径

    7.5.2 求解单源点最短路径的Dijkstra算法。

    给出一个顶点:得到去其他所有顶点的最短路径
    算法实现:p251

    7.5.3 求解任意顶点间最短路径的Floyd算法

    算法实现:p254

    7.6 AOV/AOE 网及其算法

  • 相关阅读:
    2018 ACM 网络选拔赛 徐州赛区
    2018 ACM 网络选拔赛 焦作赛区
    2018 ACM 网络选拔赛 沈阳赛区
    poj 2289 网络流 and 二分查找
    poj 2446 二分图最大匹配
    poj 1469 二分图最大匹配
    poj 3249 拓扑排序 and 动态规划
    poj 3687 拓扑排序
    poj 2585 拓扑排序
    poj 1094 拓扑排序
  • 原文地址:https://www.cnblogs.com/theodoric008/p/8042596.html
Copyright © 2011-2022 走看看