基于邻接矩阵的图的各种遍历
/**
*
* 作者: LinX 2017-7-8 - 2017-7-13
*
* 内容: 图的邻接矩阵表示法以及基于邻接矩阵的遍历
*
*
* 说明: 基于邻接矩阵的图的DFS和BFS中,对于二维数组中每个数都要访问一遍(判断是否为1)
*
* 因此时间复杂度为O(n^2)
*
*
*/
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct
{
char data;
char info;
}VertexType;
typedef struct
{
int edges[MAXSIZE][MAXSIZE];
int vnums,enums; //顶点和边数目
VertexType vex[MAXSIZE];
}MGraph;
MGraph* createDG(); //创建有向图
void DFS(MGraph *G,int visit[],int startVT); //基于邻接矩阵的深度优先遍历
void BFS(MGraph *G,int visit[],int startVT); //基于邻接矩阵的广度优先遍历
void DFS_Nonrecursion(MGraph *G,int visit[],int startVT); //基于邻接矩阵的深度非递归深度优先遍历
int main()
{
int i,visit[MAXSIZE];
for(i=0;i<MAXSIZE;i++)
{
visit[i]=0;
}
MGraph *G;
G=createDG();
//DFS(G,visit,0);
//BFS(G,visit,0