请利用两个栈S1和S2来模拟一个队列。已知栈的三个运算定义如下: PUSH(ST,x):元素x入ST栈;POP(ST,x):ST栈顶元素出栈,赋给变量x;Sempty(ST):判ST栈是否为空。那么如何利用栈的运算来实现该队列的三个运算:enqueue:插入一个元素入队列; dequeue:删除一个元素出队列;queue_empty:判队列为空。(请写明算法的思想及必要的注释)
提示:
结合栈和队列的思想来完成该题目。
要求:
⑴ 写入栈子函数:PUSH(ST,x)
⑵出栈子函数:POP(ST,x)
⑶ 判断栈空子函数:Sempty(ST)
(4) 入队子函数:enqueue(stack s1,elemtp x)。
(5)出队子函数:dequeue(stack s2, stack s1)
(6) 判断队空子函数:queue_empty(stack s2, stack s1)