输出深度遍历序列的c语言程序,图的深度优先遍历-C语言实现

我在大二上学期期末时候写的,大概2014年1月4号左右。我写在博客里一是为我以后复习所用,二是希望对需要的人有所帮助。

问题描述:

设计一个程序,输入一个无向图的顶点(编号 1,2,3···n)和边,使用邻接表存储结构存储该图,设定起始顶点后,按深度优先遍历算法遍历该图。输出顶点的访问次序。

#include #include

#include

#include

#define MAXLIN 40

/*----邻接表存储结构---*/

//-----------------表节点存储结构----------

typedef struct ArcNode{                                            //结构体

int adjvex;     //表节点编号信息

struct ArcNode *next;

}ArcNode;

//-----------------头结点存储结构-----------

typedef struct VNode{

char vertex[5];      //节点信息

ArcNode *link;

int id;         //编号

}VNode;

//边节点

typedef struct Bian{                            //为了方便 加的一个结构体

char one[5];                //存储边的第一个节点

char two[5];                //存储边的第二个节点

}Bian;

typedef struct{

VNode adjList[MAXLIN];     //顺序存储 头结点  头结点的数组

int vexnum;       //顶点数

int arcnum;            //边数

Bian bian[MAXLIN];        //边的数组

int kind;                //图的存储种类

}ALGraph;

int visit[MAXLIN];

//返回是第几个顶点

int PanDuan(char n[5],ALGraph &G)

{

for(int i=0;i

{

if(strcmp(n,G.adjList[i].vertex)==0)

return i;

}

printf("没有找到相关顶点,图的信息有误!\n");

return 0;

}

//输入图的相关信息

ALGraph InPut(ALGraph G)

{

int i;

char haha[4];

printf(&

你可能感兴趣的:(输出深度遍历序列的c语言程序)