问题 填空题

已知Q是一个非空队列,S是一个空栈。编写算法,仅用队列和栈的ADT函数和少量工作变量,将队列Q的所有元素逆置。栈的ADT函数有:voidmakeEmpty(SqStacks);置空栈voidpush(SqStacks,ElemTypee);元素e入栈ElemTypepop(SqStacks);出栈,返回栈顶元素intisEmpty(SqStacks);判断栈空队列的ADT函数有:voidenQueue(Queueq,ElemTypee);元素e入队ElemTypedeQueue(Queueq);出队,返回队头元素intisEmpty(Queueq);判断队空

答案

参考答案:void QueueInvent(Queue q) { ElemType x; makeEmpty(SqStack s);while(!isEmpty(Queue q)){x=deQueue(Queue q);push(SqStack s, ElemTypex);}while(!isEmpty(SqStack s)){x=pop(SqStack s); enQueue(Queue q, ElemType x);} }

单项选择题
单项选择题