#include <stdio.h>
#define Maxsize 10
static bool flag = 0;
static int det = 0;
typedef struct Queue {
int val[Maxsize];
int front, tail;
}Queue;
int initQueue(Queue& Q) {
Q.front = Q.tail = 0;
return 1;
}
int Enqueue(Queue& Q, int num) {
if ((flag) & (Q.front == Q.tail)) {
printf("queue is full!\n");
det = 1;
return 0;
}
Q.val[Q.front++] = num;
Q.front %= 10;
if (Q.tail == Q.front) {
det = 1;
}
flag = 1;
return 1;
}
int Dequeue(Queue& Q) {
if ((!flag) & (Q.front == Q.tail)) {
printf("queue is empty!\n");
return 0;
}
Q.tail++;
Q.tail %= 10;
det = 0;
flag = 0;
return 1;
}
int main() {
Queue Q;
int seq, num;
int length;
int i;
initQueue(Q);
while (true) {
printf("1.Dequeue\n2.Enqueue\n");
printf("please enter your option:");
scanf_s("%d", &seq);
switch (seq)
{
case(1):
Dequeue(Q);
break;
case(2):
printf("please enter the num:");
scanf_s("%d", &num);
Enqueue(Q, num);
break;
default:
break;
}
length = (Q.front - Q.tail+ Maxsize) % Maxsize + 10*det;
printf("length:%d\n", length);
printf("\npresent queue is:\n");
for (i = 0; i < length; i++) {
printf("%d ", Q.val[(Q.tail + i) % Maxsize]);
}
printf("\n");
}
return 0;
}
规定大小的循环队列
于 2022-05-15 20:30:15 首次发布