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 网及其算法

  • 相关阅读:
    monkeyrunner1
    也来复习一下数据库的一些知识1
    Monkey原理
    总结一下app客户端的测试点
    从侧计--mongkeyScript问题
    从侧计----monkeyScript实例----开启墨迹天气并添加城市,最后关闭app
    求助:关于sql如何统计时间的问题
    虚拟机无法分配内存 virtual memory exhausted: Cannot allocate memory
    Ubuntu14.04安装libusb
    E: 软件包 ffmpeg 没有可供安装的候选者
  • 原文地址:https://www.cnblogs.com/theodoric008/p/8042596.html
Copyright © 2011-2022 走看看