内容:
采用邻接矩阵形式存储图,进行图的深度优先搜索并输出结果。
步骤:
- 算法分析
本题需要利用邻接矩阵的形式存储图,并对图进行深度优先搜索并输出结果。大体上可以分为两个部分,一是采用邻接矩阵的方式存储图,二是对图进行深度优先搜索并输出。
对于第一部分,图是一种结构复杂的数据结构,图的常用存储结构有四种,分别为邻接矩阵、邻接表、十字链表和邻接多重表。其中相较于十字链表和邻接多重表来说,邻接矩阵和邻接表较为简单,也更好理解。此题采用邻接矩阵形式存储图,存储时分为两个部分,顶点的信息和顶点之间的关系,分为两部分来存储:用一维数组来存储顶点信息,用二维数组来存储弧的信息。
图的邻接存储结构结构如下:
typedef struct
{
int vexs[Max];//图中顶点的最大个数
int edges[Max][Max];//整数中允许的最大值
int n,e;//定义图中的顶点数和弧数
}Graph;
//建立图以及图的初始化
void create(Graph &G)
{
for(int i=0;i<Max;i++)
for(int j=0;j<Max;j++)
(G.edges)[i][j]=0;
G.n=0;