数据结构----图的遍历(DFS)

本文介绍了如何利用邻接表结构,通过深度优先搜索(DFS)算法来判断无向图中两个顶点之间是否存在长度为k的简单路径。文中包含具体的测试用例和算法代码实现。
摘要由CSDN通过智能技术生成

问题描述:


采用邻接表的存储结构,编写一个算法,判别无向图中任意给定的啷个顶点之间是否存在一条长度为 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++)
	{
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值