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

本文提供了一个使用C语言实现无向图深度优先遍历的程序,包括邻接表存储结构,输入图信息,构成邻接表,输出遍历顺序等功能。程序还包括用户交互界面,便于测试和使用。
摘要由CSDN通过智能技术生成

我在大二上学期期末时候写的,大概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(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值