已知q是一个非空顺序队列,s是一个顺序栈,请设计一个算法,实现将队列q中所有元素逆置。
举一反三
- 已知Q是一个非空队列,S是一个空栈。仅用队列和栈的ADT函数和少量工作变量,使用 PASCAl或C语言编写一个算法,将队列Q中的所有元素逆置。的ADT函数有:makeEmpty ( s: stack ) ;//置空栈push ( s :stack ; value:datatype ) ;//新元素value入栈pop ( s : stack ) :datatype;//出栈,返回栈顶值isEmpty ( s :stack ) : Boolean ;//判栈空否队列的ADT函数有:enQueue( q:queue:value:datatype);//元素value进队deoueue (q:queue ) : datatype ;//出队列,返回队头值isEmpty(q:queue ) : boolean ;//判队列空否
- 栈S和队列Q的初始状态皆为空,元素a1,a2,a3,a4,a5和a6依次通过一个栈,一个元素出栈后即进入队列Q,若6个元素出队列的顺序是a3,a5,a4,a6,a2,a1则栈S至少应该容纳_____个元素。
- 编程:已知Q是一个非空队列,S是一个空栈。编写算法,仅用队列和栈的ADT函数和少量工作变量,将队列Q的所有元素逆置。栈的ADT函数有:void makeEmpty(SqStack s); 置空栈void push(SqStack s,ElemType e); 元素e入栈ElemType pop(SqStack s); 出栈,返回栈顶元素int isEmpty(SqStack s); 判断栈空队列的ADT函数有:void enQueue(Queue q,ElemType e); 元素e入队ElemType deQueue(Queue q); 出队,返回队头元素int isEmpty(Queue q); 判断队空
- 设栈S和队列Q的初始状态为空,元素a.b.c.d.e.f依次通过栈S,一个元素出栈后即进入队列Q。若这6个元素出队列的顺序是bdcfea.则栈S的容量至少应是()。
- 1.设栈 S 和队列 Q 的初始状态为空,元素 e1 、 e2 、 e3 、 e4 、 e5 、 e6 依次通过栈 S ,一个元素出栈后即进入队列 Q ,若 6 个元素出队的顺序是 e2 、 e4 、 e3 、 e6 、 e5 、 e1 ,则栈 S 的容量至少应该是( )。