栈与队列
迷糊弟弟
只有光头才能变强。
展开
-
设计一个有getMin功能的栈
问题:实现一个特殊的栈,在实现栈的基本功能的基础上,在实现返回栈中最小元素的操作。思路:设计两个栈,一个栈stackData当做普通栈,用来进行出栈与入栈。另一个栈stackMin用来保存普通栈中最小的元素。入栈:stackData栈正常入栈,判断stackMin是否为空,为空则元素也入stackMin栈,否则,判断要入栈元素是否比stackMin栈顶元素小,若小,入栈元素也要入stac...原创 2019-07-01 23:16:59 · 87 阅读 · 0 评论 -
由两个栈组成的队列
题目:编写一个类,用两个栈实现队列,支持队列的基本操作。思路:选择两个栈,stackPush,stackPop,队列入队时,入stackPush栈,队列出队时,判断stackPop是否为空,不为空,直接在stackPop出栈,为空,则将stackPush栈中的所有元素全部添加到stackPop内,再出栈。代码如下:public class Main { public Stack...原创 2019-07-01 23:25:45 · 93 阅读 · 0 评论 -
如何仅用递归函数和栈操作逆序一个栈
题目:一个栈一次压入1 2 3 4 5 ,那么从栈顶到栈底分别为 5 4 3 2 1,将这个栈逆序,只能用递归,不能用其他数据结构。思路:先设计一个递归函数得到栈底元素再设计一个递归函数,逆序一个栈代码实现:public class Main{ public static void main(String [] args) throws InterruptedException, ...原创 2019-07-03 21:43:47 · 129 阅读 · 0 评论