#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);
有向图邻接表的深度优先遍历
最新推荐文章于 2024-06-25 21:00:00 发布
本文介绍了如何使用C语言实现有向图的邻接表结构,并通过深度优先遍历(DFS)算法进行图的遍历。首先定义了图的结构,然后创建图并打印其信息,最后进行DFS遍历并输出顺序。
摘要由CSDN通过智能技术生成