# 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 (" %c",&g.vertices[i].data); //构造顶点向量
g.vertices[i].firstarc = N
DFS--图中两点之间的路径
最新推荐文章于 2025-06-30 23:30:37 发布