有向图邻接表的深度优先遍历

本文介绍了如何使用C语言实现有向图的邻接表结构,并通过深度优先遍历(DFS)算法进行图的遍历。首先定义了图的结构,然后创建图并打印其信息,最后进行DFS遍历并输出顺序。
摘要由CSDN通过智能技术生成
#include <cstdio>
#include <cstdlib>

#define MaxNum 10  //最大顶点数

int visited[MaxNum];

//表结点
typedef struct endoe
{
	int adjvex;
	endoe *next;
}endoe;

//定点结点
typedef struct vnode
{
	char vertex;
	endoe * first_edge;
}node;

//图结构
typedef struct ALGraph
{
	vnode adj_list[MaxNum];
	int n,e;
} ALGraph;

//定位顶点Vex的下标位置
int Locate_vex(ALGraph* G,char vex)
{
	for(int i=0;i<G->n;++i)
		if(G->adj_list[i].vertex==vex)
			return i;
}

//创建图
void CreateGraph(ALGraph * G)
{
	endoe* temp=NULL;
	int vex1,vex2;
	int i,j,k;
	int old_i=-2,old_j=-2;
	printf("\n请输入有向图的顶点名称:");

	for(i=0;i<G->n;++i)
	{
		scanf("\n%c",&G->adj_list[i].vertex);
		G->adj_list[i].first_edge=NULL;
	}

	printf("\n请输入有向图中每条弧的弧尾顶点和弧头顶点名称:\n");

	for(k=1;k<=G->e;++k)
	{
		printf("\n请输入第 %d 条弧的弧尾顶点名称:",k);
		scanf("\n%c",&vex1);
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值