问题描述:
用两个栈实现一个队列,完成队列的Push和Pop操作,队列中的元素为int类型
思路:
模拟题,首先根据栈和队列的特性,栈是先进后出,队列是先进先出,不难得知,将数组元素按1,2,3顺序压入栈后,出栈顺序为3,2,1,改变了一次元素先后顺序,而将元素再压入栈后,出栈顺序即与第一次入栈时相同,实现了先入先出。
解法:
入栈:栈1入栈即为模拟入队。
出栈:栈1在栈2为空的时候,将栈1内元素全部依次出栈再入栈栈2,再出栈2栈顶元素即为出队;在栈2非空的时候,则直接出栈。


该博客讨论了如何利用两个栈的特性来模拟队列的Push和Pop操作,实现int类型的元素的先进先出(FIFO)顺序。在栈1中进行入队操作,出队时若栈2为空则将栈1所有元素转移至栈2,然后从栈2出栈,反之则直接从栈2出栈。这种方法巧妙地结合了栈和队列的特性来达到队列的功能。
用两个栈实现一个队列,完成队列的Push和Pop操作,队列中的元素为int类型
模拟题,首先根据栈和队列的特性,栈是先进后出,队列是先进先出,不难得知,将数组元素按1,2,3顺序压入栈后,出栈顺序为3,2,1,改变了一次元素先后顺序,而将元素再压入栈后,出栈顺序即与第一次入栈时相同,实现了先入先出。
入栈:栈1入栈即为模拟入队。
出栈:栈1在栈2为空的时候,将栈1内元素全部依次出栈再入栈栈2,再出栈2栈顶元素即为出队;在栈2非空的时候,则直接出栈。


179
261
1481

被折叠的 条评论
为什么被折叠?