数据结构之图论
图的定义
__图可以记为G(V,E),其中V表示图G中顶点的非空有限集;E表示图G中边的集合。
常见的图的分类
__ 按照边是否有方向可以分为有向图和无向图__
按照边上是否有权重可以分为有权图和无权图
两两相互组合一共有四种叫法
图中常见的定义
度、入度、出度
度:依附于顶点的边的条数
生成树、最小生成树
生成树:包含所有顶点的最小连通子图
最小生成树:在有权图中,权值之和(带权路径长度)最小的生成树叫最小生成树
图的存储
邻接矩阵
在不带权图中使用1来表示节点之间连通,使用0来表示节点之间不连通。
在带权图中,使用权值代表连通关系,使用无穷来代表不连通
邻接表法
顺序+链式存储
十字链表
临接多重表
图的基本操作
图的遍历
将图存储(邻接矩阵、邻接表 等)好之后,广度优先遍历(BFS) 就是按照每一层遍历,直到将一层遍历结束然后进入下一层。深度优先遍历(DFS) 是将先遍历到最深层,然后回退,每次遍历每层至多遍历一个。
广度优先遍历(BFS)
深度优先遍历(DFS)
最小生成树
最小生成树的概念
生成最小生成树的方法
Prim算法
从结点考虑的算法
Kruskal算法
从边考虑的算法
图的应用
最短路径问题
单元最短路径问题
BFS:适用于无权图
Dijkstra算法:适用于带权图和无权图
各顶点间最短路径问题
floyd算法:适用于带权图和无权图