/*
图的广度优先算法(邻接矩阵的存储结构,无权图):
1. 算法思想:
1. 访问顶点
2. visited[i]置为true
3. 入队
4. - 出队
- 访问所有的邻接顶点,置true,入队,重复步骤4
2. 回顾循环队列:
1. 基本的结构:
- 为了便于区分 front = rear是表示当前队列是满的还是空的,使用了带有一个空位置的队列
2. 队列满的条件:
- (rear + 1) / maxsize == front;
3. 队列空的条件:
- frint == raer;
*/
# include<iostream>
# include<string>
using namespace std;
# define MAX 30
bool visited[MAX];
int queue[MAX - 1];
struct Matrix{
char vex[MAX];
int arc[MAX][MAX];
int vexnum, arcnum;
};
struct Queue{
int element[MAX];
int front;
int rear;
};
void initQueue(Queue * q){
q->front = q->rear=0;
return;
}
int enterQueue(Queue * q, int x){
if ((q->rear + 1) % MAX == q->front)
return false;
q->element[q->rear] = x;
q->rear = (q->rear + 1) % MAX;
return true;
}
int isEmptyQueue(
图的广度优先伪代码实现-c++
最新推荐文章于 2024-04-22 15:17:57 发布