这一章学习的图,由于图的结构比较复杂,因此图没有顺序存储结构,但可以借助二维数组来表示图中各元素之间的关系,即图的邻接矩阵表示法,看图最常用的还是列式存储,有邻接表,十字链表等。这一章主要学的是邻接矩阵和邻接表。
图的邻接矩阵表示法:
图的邻接表存储结构:
区别:邻接矩阵可以很容易的判断两个顶点之间是否有边,且便于计算各个顶点的度,但是不便于增加或删除顶点,适合存储稠密图,且若存储的是稀疏图则会极大的浪费空间;邻接表便于增加和删除顶点,还便于统计边的数目,适合存储稀疏图。
学完图的存储之后就知道图是怎么一回事,所以接下来学的是图的遍历,有两种方法:BFS(广度优先)和DFS(深度优先)。对于这两个遍历最形象的比喻就是,BFS:像水波一样一圈圈的扩散开来遍历;DFS:不撞南墙不回头。
图自然也有非常多的应用,如:最小生成树,最短路径等。
最小生成树有prim算法和kruskal算法。且最小生成树并不唯一。最短路径有Dijkstra算法和Floyd算法。
学习心得:这一章学的不怎么好,没有像第五章那样花很多的时间进去了,代码不能完整的复现。导致代码都是在网上参考的,自己囫囵一下就交上去了。
下一阶段的目标:权衡时间吧,我会在数据结构上努力的。
原文:https://www.cnblogs.com/tjddf/p/13128559.html