2.(1)用两个栈实现一个队列.用两个队列实现一个栈。

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:32:50

我初学,要不我们探讨一下?栈是后进先出,队列是先进先出。两个栈底对底连接,一个栈顶只负责进栈,一个栈顶只负责出栈。重要的是栈底如何连,和进去栈时,栈的空间变化该如何处理?我想把进的栈定义为动态内存分配栈,出的栈定义为固定空间,起始2.base=1.base,Pop(2.top),2.base=++1.base

设有栈A、B。
入队: 直接将元素push到A中。
出队: 若栈B不为空,从B中pop;
若B为空,将A中元素逐个pop,并push到B中;然后B中pop出栈顶元素。

直观上,是将A栈的栈底和和B栈的栈底对接,从形成了队列的性质。
本质上:用两个栈的pop、push实现队列的enqueue、dequeue 操作。