数据结构与算法王卓-习题-第六章图-采用邻接矩阵表示图的广度优先搜索遍历(BFS)算法

这篇博客介绍了如何使用邻接矩阵表示图,并详细阐述了广度优先搜索(BFS)算法的实现过程,包括算法描述、预期效果、重难点分析和个人解法。作者在实践中遇到理解上的困扰,最后发现了问题所在,即在BFS遍历过程中,队列的推进自动实现了节点的有序访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

算法描述

算法预期效果

重难点

个人解法

总结

测试样例与输出


算法描述

创建图的邻接矩阵, 并输出bfs广度优先搜索遍历结果

算法预期效果

依次输入顶点数,边数,顶点V1~Vn,边A1~An,根据输入的顶点与边的关系,输出形如右边的邻接矩阵,接着使用BFS进行广度优先遍历,输出所有结点。

效果一:输出邻接矩阵

效果二:输出BFS遍历结果

重难点

使用非递归的结构,如何有序且不重复的遍历结点;visited数组如何声明与引用

个人解法

#include <iostream>
using namespace std;
#define MVNum 100

typedef struct {
	char *base;
	int front, rear, size;
}Queue;   //队列

typedef struct {
	char vexs[MVNum];
	int arcs[MVNum][MVNum];
	int vexnum,arcnum;
}AMGraph; //adjacency matrix graph

void InitQueue(Queue &Q, int n) {
	Q.base = new char[n];
	if (!Q.base) exit(-1);
	Q.front = Q.rear = 0; Q.size = n;
}         //队列初始化

void inq(Queue &Q, cha
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值