# include <stdio.h>
# include <memory.h>
# include <malloc.h>
# define MAX 20 //最大顶点数
typedef struct VNODE
{
int num; //该边所指的顶点的位置
struct VNODE *next; //指向下一条边的指针
}arcnode; //表的结点
typedef struct LIST
{
char data; //顶点信息
arcnode * firstarc ; //指向第一条依附顶点的边和弧指针
}ADJVEX[MAX]; //头结点
typedef struct ALGRAPH
{
ADJVEX vertices;
bool visited[MAX]; //访问标志数组
int vexnum,arcnum; //图的当前顶点数和弧数
}algraph;
void init_algraph (algraph &g) //初始化图
{
memset(g.visited,false,sizeof(bool)*MAX); //访问标志数组置false,表示未访问
g.arcnum = 0;
g.vexnum = 0;
}
int locatenode(algraph &g,char ch) //定位ch在顶点向量中的位置
{
int i;
for (i=0;i<g.vexnum && ch != g.vertices[i].data;++i)
;
return i;
}
void add_vex (algraph &g) //增加顶点
{
printf ("请输入顶点个数\n");
scanf ("%d",&g.vexnum);
printf ("请输入顶点信息\n");
for (int i=0;i<g.vexnum;++i)
{
scanf ("
DFS--图中两点之间的路径
最新推荐文章于 2022-07-11 09:56:00 发布
这篇博客介绍了一种使用深度优先搜索(DFS)在图中查找两点间路径的方法。首先定义了图的结构,然后通过DFS遍历实现从指定顶点出发找到目标顶点的路径。程序包括初始化图、添加顶点和边、打印图、深度优先遍历以及寻找路径等功能。
摘要由CSDN通过智能技术生成