图的广度优先遍历(邻接表存储)

本文介绍了图的广度优先搜索(BFS)算法,使用邻接表存储结构,并通过队列进行层次遍历。BFS算法详细步骤与代码示例一并给出。
摘要由CSDN通过智能技术生成

图的广度优先搜索类似于树的按层遍历,遍历过程中要用到队列(因为队列中的元素为先进先出),BFS的思想很简单,以下给出完整的代码

#include <iostream>
typedef char InfoType;
typedef char VertexType;
typedef char QElemType;
#define ERROR -1;
#define OK 1;
bool visited[20];
using namespace std;
typedef struct Qnode{
	QElemType data;
	struct Qnode *next;
}Qnode,*QueuePtr;

typedef struct{
	QueuePtr front;   //队头指针
	QueuePtr rear;    //队尾指针
}LinkQueue;

typedef struct ArcNode{
	int adjvex;       //该弧所依附的结点的位置编号
	struct ArcNode *nextarc;  //指向下一条弧的指针
	InfoType *info;           //指向存储弧的信息的指针
}ArcNode;

typedef struct VNode{ 
	ArcNode *firstarc;   //依附于该结点的第一条弧
	VertexType data;     //节点信息
}Vnode,AdjList[20];

typedef struct{
	int vexnum,arcnum;   //图的结点个数和弧的个数
	AdjList vertices;    //存放图的结点的位置向量
}ALGraph;

void InitQueue(LinkQueue &Q){
	Q.rear=Q.front=(QueuePtr)mall
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值