这是一个会循环的队列。
#include<iostream>
using namespace std;
#define maxsize 10
typedef int qelemtype;
typedef struct
{
qelemtype data[maxsize];
int front;
int rear;
}sqqueue;
void initqueue(sqqueue* q)
{
q->front = 0;
q->rear = 0;
}
int queuelength(sqqueue q)
{
return (q.rear - q.front + maxsize) % maxsize;
}
void enqueue(sqqueue* q, qelemtype e)
{
if ((q->rear + 1) % maxsize == q->front)
return;
q->data[q->rear] = e;
q->rear = (q->rear + 1) % maxsize;
}
void dequeue(sqqueue* q, qelemtype* e)
{
if (q->front == q->rear)
return;
*e = q->data[q->front];
q->front = (q->front + 1) % maxsize;
}
int main()
{
return 0;
}
只要不超过它的大小,该队列可以一直使用。