邻接矩阵的广度优先遍历--C实现

嘻嘻,好高兴,自己一个人咬着牙挺到了现在,我已走了这么远的路

#include "stdio.h"
#include "stdlib.h"
#include "stdbool.h"
#define MVN 20
#define Maxint 32767
#define MAXSIZE 20
typedef int QElemTypes;
typedef  char VerTexType;
typedef int ArcType;
typedef struct 
{
   
	QElemTypes* base;// 队列装载装置
	int front;//队头,此处会弹出警告,但是 QElemTypes = int 
	int rear;//队尾
	int length;
}SqQueue,SQueue;

typedef struct
{
   
	VerTexType Vexs[MVN];// 顶点矩阵
	ArcType Arcs[MVN][MVN];// 邻接矩阵
	int Vexnum,Arcnum;// 当前顶点数和边数
	_Bool visited[MVN];// 记录被访问过的节点
}AMGraph;// Adjacency Matrix Graph :邻接矩阵

int get_first(AMGraph* G, VerTexType* v);
int GetVertex(AMGraph* G);
int LocateVex(AMGraph* G,VerTexType v);
int Create_visited(AMGraph* G);
int FirstAdjVex(AMGraph* G, int u);
int NextAdjVex(AMGraph* G, int u, int w);
int InitQueue(SqQueue* Q);

int InitQueue(SqQueue* Q)//初始化
{
   
	Q->base = (QElemTypes*)malloc(sizeof(QElemTypes)*MAXSIZE);
	if(!Q->base) return 0;
	Q->front = Q->rear = 0;//头尾指针指向同一元素
	
	return 1;
}

int EnQueue(SqQueue* Q, QElemTypes e)
{
   
	if(!Q->base || (Q->rear + 1)%MAXSIZE ==Q->front)// 队列不存在或者已满
		return 0;
	Q->base[Q->rear] = e;//元素入队
	Q->rear = (Q->rear + 1)%MAXSIZE;// 队尾指针加一
	Q->length
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山河锦绣放眼好风光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值