问题描述:
采用邻接表的存储结构,编写一个算法,判别无向图中任意给定的啷个顶点之间是否存在一条长度为 k 的简单路径。
完整代码:
#include<cstdio>
#include<cstring>
#define Maxnum 100
//边结点
typedef struct ArcNode
{
int adjvex;//边结点在顶点表中的下标
struct ArcNode *next;
} ArcNode;
//顶点
typedef struct VNode
{
char data;
ArcNode * firstarc;
}VNode;
//邻接表
typedef struct
{
VNode vertex[Maxnum];
int vernum;
int arcnum;
}ALGraph;
//find 函数,查找数据域为e的顶点下标
int find(ALGraph G, char e)
{
for(int i=0; i<G.vernum; i++)
{
if(G.vertex[i].data==e)
return i;
}
return -1;
}
//创建无向图邻接表
void createAlGraph(ALGraph &G)
{
scanf("%d%d", &G.vernum, &G.arcnum);
getchar();
for(int i=0; i<G.vernum; i++)
{