程序员面试经典--栈实现堆盘子
来源:互联网 发布:广州数控编程讲解视频 编辑:程序博客网 时间:2024/06/08 14:00
3.3问题:
设想有一堆盘子,堆太高可能会倒下来。因此,在显示生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。setOfStacks应该由多个栈组成,并且在当前一个栈填满时新建一个栈。此外,SetOfStacks.push()和SeOfStacks.pop()应该与普通栈的操作方法相同(也就是说,pop()返回的值,应该跟只有一个栈时的情况一样)。
class SetOfStacks{ArrayList<Stack> stacks =new ArrayList<Stack>();public void push(int v){Stack last = getLastStack();if(last!=null&&!last.isFull()){last.push(v);}else{Stack stack = new Stack(capacity);//若最后一个栈被填满则新建一个栈,追加到ArrayList后面。stack.push(v);stacks.add(stack);}}public int pop(){Stack last = getLastStack();int v=last.pop();if(last.size==0){stacks.remove(stacks.size()-1);//当最后一个栈为空的时候,将这个栈从ArrayList里面移除。}return v;}public Stack getLastStack(){//获取当前栈,ArrayList里面的最后一个栈。if(stacks.size()==0){return null;}return stacks.get(stacks.size()-1);}}
0 0
- 程序员面试经典--栈实现堆盘子
- 用栈模拟堆盘子
- 程序员面试经典--用栈实现队列
- 堆盘子
- 用两个栈实现队列之程序员面试经典
- 程序员面试经典--栈排序
- 堆盘子SetOfStacks
- 堆盘子问题
- 9.3栈和队列(四)——堆盘子
- 栈队列练习——堆盘子SetOfStacks
- 集合栈之程序员面试经典
- 双栈排序之程序员面试经典
- 程序员面试经典源代码
- 程序员面试经典--字串
- 程序员面试经典--汉诺塔
- 智力题(程序员面试经典)
- 程序员面试经典--巧用散列表
- 程序员面试经典--空格替换
- 6.结构光:双目视觉(基于特征点)
- Python+Selenium练习篇之27-多窗口之间切换
- Java集合分析:ArrayList、LinkedList、Vector
- kaldi 中mono phone训练过程
- Assert(),min(),max(),pow()(4月11日)
- 程序员面试经典--栈实现堆盘子
- 关于连接不上SVN的部分解决方案——No repository found in svn localhost
- SIGINT,SIGQUIT,SIGTERM等终止进程信号的区别
- Linux下多生产者多消费者--多线程问题
- 74天,任正非拜访了6省省委书记、省长,为了什么?
- 莫比乌斯函数——bzoj2440: [中山市选2011]完全平方数
- HDU 4417 (离线线段树 || 划分树 )
- 认真分析mmap:是什么 为什么 怎么用
- Spring的持久层封装