基于邻接表的图的各种遍历/**
*
* Coder: LinX 2017-7-13 - 2017-7-14
*
* 内容: 基于邻接表的图的各种遍历
*
*/
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct ArcNode
{
int adj_vex;
struct ArcNode *next_arc;
}ArcNode;
typedef struct
{
char data;
ArcNode *first_arc;
}VNode;
typedef struct
{
VNode adjlist[MAXSIZE];
int vnums,enums;
}AGraph;
AGraph* createDG(); //创建基于邻接表的有向图
void DFS(AGraph *G,int visit[],int startVT); //基于邻接表的图的深度优先遍历
void BFS(AGraph *G,int visit[],int startVT); //基于邻接表的图的广度优先遍历
int main()
{
int i,visit[MAXSIZE];
for(i=0;i<MAXSIZE;i++)
{
visit[i]=0;
}
AGraph *G=createDG();
DFS(G,visit,0);
printf("\n");
for(i=0;i<MAXSIZE;i++)
{
visit[i]=0;
}
BFS(G,visit,0);
return 0;
}
/*基于邻接表的图的深度优先遍历*/
void DFS(AG
/**
*
* Coder: LinX 2017-7-13 - 2017-7-14
*
* 内容: 基于邻接表的图的各种遍历
*
*/
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct ArcNode
{
int adj_vex;
struct ArcNode *next_arc;
}ArcNode;
typedef struct
{
char data;
ArcNode *first_arc;
}VNode;
typedef struct
{
VNode adjlist[MAXSIZE];
int vnums,enums;
}AGraph;
AGraph* createDG(); //创建基于邻接表的有向图
void DFS(AGraph *G,int visit[],int startVT); //基于邻接表的图的深度优先遍历
void BFS(AGraph *G,int visit[],int startVT); //基于邻接表的图的广度优先遍历
int main()
{
int i,visit[MAXSIZE];
for(i=0;i<MAXSIZE;i++)
{
visit[i]=0;
}
AGraph *G=createDG();
DFS(G,visit,0);
printf("\n");
for(i=0;i<MAXSIZE;i++)
{
visit[i]=0;
}
BFS(G,visit,0);
return 0;
}
/*基于邻接表的图的深度优先遍历*/
void DFS(AG