图论基础和图论算法

图论基础

图的基础知识

图论的基本研究对象,图由节点和边组成。

  • 节点
    图二、图二中黑色的圆圈就是节点,表示某个事物或对象。

  • 图二、图二中顶点之间灰色的线条就是边,表示事物与事物之间的关系。
  • 权值
    权值,即每条边都有与之对应的值。例如当顶点代表某些物理地点时,两个顶点间边的权重可以设置为路网中的开车距离(例如:从北京到上海的铁路1300km,从上海到重庆的铁路1600km,这里就是分别把北京、上海、重庆看做节点,把它们相连的铁路看做边,而铁路长度就是权值)。
  • 有向图(图一)
    如果给图的每条边规定一个方向。
    一个节点相关联的边的数量有出度和入度之分。
  • 无向图(图二)
    边没有方向的图称。
    一个节点相关联的边的数量统称度。
  • (图三)
    在路径的终点添加一条指向起点的边,就构成一条环路。通俗点说就是绕圈。
  • 自环(图四)
    若一条边的两个顶点为同一顶点,则此边称作自环。
  • 连通性(图五)
    从一个顶点和另一个顶点有互相有路径连接。
    (例如:图五中1和2、1和3、2和3具有连通性,而4和1、4和2、4和3不具有连通性)
  • 连通图
    -1 无向图连通
    连通分量是一个子图(相连的几个节点为子图),任何两个顶点的路径相互连接
    -2.有向图强连通
    两个顶点的路径相互连接的两个顶点互相强连通
    有向图中每两个顶点都强连通,称这个有向图是强连通图
    有向图的极大强连通子图,称为强连通分量
    -3 弱连通图
    有向图的基图(有向图所有的有向边替换为无向边所得图称)是连通图,则有向图称为弱连通图。

其他知识百度百科:图
图论基础和图论算法_第1张图片

图的存储方法

邻接矩阵

  • 简介:
    用二维数组进行存储
    -1. 存储一张地图
    (推荐用邻接矩阵,有的题可以优化邻接矩阵达到减少空间占用)
    -2. 存储节点关系
    (邻接矩阵对于简单图来说更费空间,但很适合萌新,很简单)

邻接表

  • 简介:
    用动态数组进行存储
    -1. 存储节点关系
    (邻接表对于简单图来说更节省空间,但对萌新不友好,有点复杂)

链式前向星

  • 简介:
    以存边为主的存图方式,利用结构体数组来存储每个节点边的来去
    -1. 存储节点关系
    (虽然链式前向星没有邻接表节省空间,没有邻接矩阵这么简单,貌似很废,但却比邻接矩阵空间占用低,比邻接表方便,还是不错的)
  • 具体教程:
    图论基础-存图:链式前向星(传送门)

图论算法

推荐学习路线:最短路=>欧拉回路=>拓扑排序=>二分图=>并查集=>最小生成树

最短路

Dijstra

传送门正在施工中…ing

SPFA

传送门正在施工中…ing

Floyd

传送门正在施工中…ing

欧拉回路

图论算法-欧拉回路:专题(传送门)

拓扑排序

图论算法-拓扑排序:专题(传送门)

二分图

图论算法-二分图:专题(传送门)

并查集

图论算法-并查集:专题(传送门)

最小生成树

传送门正在施工中…ing


拜拜!安啦! ︿( ̄︶ ̄)︿

——End——

你可能感兴趣的:(图论基础和图论算法)