循环 队列头文件:Queue.h
#ifndef QUEUE_H
#define QUEUE_H
#define MAXSIZE 20
typedef struct Node{
int data[MAXSIZE];
int front;
int order;
}Queue;
void InitQueue(Queue *q); //初始化队列
bool IsEmpty(Queue *q); //判断队列是否为空
void EnQueue(Queue *q,int Element); //进队
void DeQueue(Queue *q,int *e); //出队
#endif //QUEUE_H
队列实现文件:Queue.cpp
#include "Queue.h"
#include <string.h>
void InitQueue(Queue *q)
{
q->front = q->order = 0;
memset(q->data,-1,sizeof(int)*MAXSIZE);
}
bool IsEmpty(Queue *q)
{
if(q->order == q->front)
return true;
return false;
}
void EnQueue(Queue *q,int Element)
{
if((q->order + 1) % MAXSIZE == q->front)
return;
q->data[q->order] = Element;
q->order = (q->order + 1) / MAXSIZE;
}
void DeQueue(Queue *q,int *e)
{
if(q->order == q->front)
return;
*e = q->data[q->front];
q->front = (q->

本文介绍了图的两种遍历方法——深度优先遍历和广度优先遍历,通过队列和递归实现。并提供了相关代码实现,包括Queue.h、Queue.cpp、Graph.h以及main.cpp的测试文件。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



