用C语言编写一个算法,把输入的队列逆转并输出。用C语言写出完整代码
时间: 2023-06-06 20:07:44 浏览: 44
Sure, here's a C language code to reverse a queue:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int queue[MAX_SIZE];
int front = 0, rear = -1;
void enqueue(int item) {
if (rear == MAX_SIZE - 1) {
printf("Queue is full.\n");
return;
}
queue[++rear] = item;
}
int dequeue() {
if (front > rear) {
printf("Queue is empty.\n");
exit(1);
}
return queue[front++];
}
void display() {
if (front > rear) {
printf("Queue is empty.\n");
return;
}
int i;
for (i = front; i <= rear; i++)
printf("%d ", queue[i]);
printf("\n");
}
void reverse() {
int stack[MAX_SIZE], top = -1;
while (front <= rear)
stack[++top] = dequeue();
while (top >= 0)
enqueue(stack[top--]);
}
int main() {
int n, item;
printf("Enter the number of elements to be inserted into queue: ");
scanf("%d", &n);
printf("Enter %d elements:\n", n);
int i;
for (i = 0; i < n; i++) {
scanf("%d", &item);
enqueue(item);
}
printf("Queue before reversal: ");
display();
reverse();
printf("Queue after reversal: ");
display();
return 0;
}
```
Hope this helps!