#include<stdio.h>#include<stdlib.h>structStack{
NODETYPE* arr;//内存首地址int len;//栈的容量int top;//栈的下标};structSqueue{
NODETYPE* arr;int front, rear;};intmain(){structSqueue*sq;structStack*s;int n,data;
Squeue *createQueue(int);
bool enQueue(Squeue *,int,int);
bool deQueue(Squeue *,int*,int);voidprintQ(Squeue *,int);
Stack *createStack(int);
bool push(Stack *,int);
bool pop(Stack *);inttop(Stack *);printf("请输入队列及栈大小:");scanf("%d",&n);
sq =createQueue(n+1);//因为是循环队列,需要留一个空间作为满空判定
s =createStack(n);for(int i =0; i < n;i++){printf("请输入第%d个入队元素:",i+1);scanf("%d",&data);enQueue(sq,data, n +1);//入队}printf("原队列中元素为:");printQ(sq,n+1);printf("\n");for(int i =0; i < n;i++){deQueue(sq,&data, n +1);//出队push(s,data);//入栈}for(int i =0; i < n; i++){
data =top(s);pop(s);//出栈enQueue(sq,data, n +1);//入队}printf("逆转后队列中元素为:");printQ(sq, n +1);}