• 数据结构与算法 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 网及其算法

  • 相关阅读:
    解决.Net 4.0 A potentially dangerous Request.Form value was detected from the client 异常
    解决背景在360极速模式下不显示的问题
    ASP怎么解除文件上传200kb限制
    mysql导入数据出错
    ECShop出现Strict Standards: Only variables should be passed by reference in的解决方法
    phpmyadmin导入sql数据的纠结
    Veket_Porteus_Puppy安装器by双心
    多系统的福音,bcdedit找回传统启动菜单。取消(恢复)Modern UI风格启动菜单~菜单~
    关于fbinst-ud区的几点看法
    高速公路坐标高程计算软件4.2版本发布
  • 原文地址:https://www.cnblogs.com/theodoric008/p/8042596.html
Copyright © 2020-2023  润新知