#include <stdio.h>
#include <stdlib.h>
#define maxsize 5
typedef struct {
int data[maxsize];
int front, rear;
} Queue;
void initQueue(Queue &q) {
q.front = 0;
q.rear = 0;
}
bool isEmpty(Queue q) {
if (q.rear == q.front) { return true; } else { return false; }
}
bool enQueue(Queue &q, int num) {
if ((q.rear + 1) % maxsize == q.front) {
return false;
} else {
q.data[q.rear] = num;
//错误写法:q.rear++;
q.rear = (q.rear + 1) % maxsize;//防止超过数组最大下标
return true;
}
}
bool deleteQueue(Queue &q, int &e) {
if (q.rear == q.front) {
return false;
}
e = q.data[q.front];
q.front = (q.front + 1) % maxsize;
return true;
}
int main() {
Queue q;
initQueue(q);
bool ret = isEmpty(q);
bool result;
enQueue(q, 1);
enQueue(q, 2);
enQueue(q, 3);
enQueue(q, 4);
result = enQueue(q, 5);
if (result) {
printf("success\n");
} else {
printf("fail\n");
}
int e;
deleteQueue(q, e);
result = enQueue(q, 5);
if (result) {
printf("success\n");
} else {
printf("fail\n");
}
}
循环队列:顺序表实现入队和出队
于 2024-01-04 21:12:34 首次发布