清华OJ:PA3-1 无线广播(Broadcast)三状态遍历全图

题目:https://dsa.cs.tsinghua.edu.cn/oj/problem.shtml?id=1148

分析:

题目不难,但要注意题目涉及的图是无向图,所以建议按照邓公教材的风格,使用三个状态来表示当前顶点未发现,即从未入队,已发现,即在队中,已访问,即入队过,在主函数中调用即可,注意要使用邻接表。

代码:

#include<iostream>
#define MAXSIZE 10001
#define UNDISCOVERED 0
#define DISCOVERED 1
#define VISITED 2
using namespace std;
struct EdgeNode{
	int vsub;
	EdgeNode* succ;	
};
struct VertexNode{
	EdgeNode* fstEdge;	
};
VertexNode adjList[MAXSIZE];
int queue[MAXSIZE],status[MAXSIZE],front=0,rear=0,i,j,k,m,n;//注意全局数组元素自动初始化为0 
int BFS(int v){
	queue[rear]=v;rear=(rear+1)%MAXSIZE;
	status[v]=DISCOVERED;//当前顶点已发现,入队 
	while(front!=rear){
		
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值