数据结构——图知识概要

来源:互联网 发布:知乐的肉小说有哪些 编辑:程序博客网 时间:2024/06/16 21:13

  图是另一种比树形结构更复杂的非线性数据结构,图中的数据元素称为顶点(Node<T>),顶点之间是多对多的关系,图分为有向图和无向图,带权值的图为网。

  图的存储:

 一般采用数组存储图中顶点的信息,邻接矩阵采用二维数组存储顶点之间的关系,无向图的邻接矩阵是对称的,所以在存储时可以只存储上三角矩阵或下三角矩阵的数据;有向图的邻接矩阵不是对称的。邻接表用一个链表来存储顶点之间的关系,所以邻接表是顺序存储与链式存储相结合的存储结构。

 图的遍历:

①深度优先遍历:类似于树的先序遍历(DLR),是树的先序遍历的推广,它访问顶点的顺序是后进先出,与栈一样。

②广度优先遍历:类似于树的层序遍历,它访问顶点的顺序是先进先出,与队列一样。

  图的应用:

 ①最小生成树:是一个无向连通网中边的权值总和最小的生成树,构造最小生成树必须包括n个顶点,n-1条边及不存在回路,构造最小生成树的常用算法有普利姆算法和克鲁卡尔算法两种

 ②最短路径问题:是网中求一个顶点到另一个顶点的所有路径中边的权值之和最小的路径,可以求从一个顶点到网中其余顶点的最短路径,这称之为单源点问题(狄克斯特拉算法),也可以求网中任意两个顶点之间的最短路径。

 ③拓扑排序:AOV网是顶点之间存在优先关系的有向图,拓扑排序是解决AOV网中是否存在环路的有效手段,若拓扑排序序列中包含AOV网中所有的顶点,则AOV网中不存在环路,否则存在环路。

   这里面每一点都是一个具体的知识点,如果某个知识点不懂,就要深入的学习,后续我会将各个算法的实现在贴上来

0 0