二、 实例代码:
#include <stdio.h>
#include <assert.h>
#define QueueSize 100
typedef char datatype;
//队列的数据元素
typedef struct
{
int front;
int rear;
int count; //计数器,用来记录元素个数
datatype data[QueueSize]; //数据内容
}cirqueue;
//置空队
void InitQueue(cirqueue *q)
{
q->front = q->rear = 0;
q->count = 0;
}
//判断队满
int QueueFull(cirqueue *q)
{
return (q->count == QueueSize);
}
//判断队空
int QueueEmpty(cirqueue *q)
{
return (q->count == 0);
}
//入队
void EnQueue(cirqueue *q, datatype x)
{
assert(QueueFull(q) == 0); //q满,终止程序
q->count++;
q->data[q->rear] = x;
q->rear = (q->rear + 1)%QueueSize; //循环队列设计,防止内存浪费
}
//出队
datatype DeQueue(cirqueue *q)
{
datatype temp;
assert(QueueEmpty(q) == 0);//q空,则终止程序,打印错误信息
temp = q->data[q->front];
q->count--;
q->front = (q->front + 1)%QueueSize;
return temp;
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
注:相关教程知识阅读请移步到C++教程频道。










