图的存储结构
1)邻接矩阵
用两个数组来表示图,一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中边或弧的信息。
2)邻接表
3)十字链表
4)邻接多重表
5)边集数组
本文只用代码实现用邻接矩阵方式存储图。忘见谅。
图的遍历
1)深度优先遍历(Depth_First_Search,DFS)
从图中某个顶点 v 出发,访问此顶点,然后从 v 的未被访问的邻接点出发深度优先遍历图,直至图中所有和 v 有路径相通的顶点都被访问到。--------递归思想
2)广度优先遍历(Breadth_First_Search,BFS)
类似于树的层序遍历-----------非递归,而是逐层遍历。
区别:深度优先遍历更适合目标比较明确,以找到目标为主要目的的情况,而广度优先更适合在不断扩大遍历范围时找到相对最优解的情况。
具体实现代码如下:
/* Graph.h头文件 */
#include<iostream>
#include"LinkQueue.h"