【算法导论学习-19】1个stack实现queue
2014-08-23 18:52
357 查看
《算法导论》:236页10.1-6,10.1-7,要求实现:两个stack实现queue;两个queue实现stack。
参考:/article/4722593.html讲解了原理。
讨论区:http://stackoverflow.com/questions/69192/how-to-implement-a-queue-using-two-stacks有一个人回答实现了“1个stack实现queue”。
摘录如下:
参考:/article/4722593.html讲解了原理。
讨论区:http://stackoverflow.com/questions/69192/how-to-implement-a-queue-using-two-stacks有一个人回答实现了“1个stack实现queue”。
摘录如下:
public class QueueFromSingleStack<E> { private java.util.Stack<E> stack = new java.util.Stack<E>(); /** * @param args */ public static void main(String[] args) { // TODO 自动生成的方法存根 QueueFromSingleStack<Integer> queueFromSingleStack=new QueueFromSingleStack<>(); queueFromSingleStack.insert(1); queueFromSingleStack.insert(-2); queueFromSingleStack.remove(); System.out.println(queueFromSingleStack.remove()); } /*关键步骤,其实是用递归的方式将内存作为第二个临时stack*/ public void insert(E elem) { if (!stack.empty()) { E topElem = stack.pop(); insert(elem); stack.push(topElem); } else stack.push(elem); } public E remove() { return stack.pop(); } }
相关文章推荐
- 【算法导论学习-18】queue的数组实现
- 【算法导论学习-17】stack的数组实现
- 【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现
- 学习算法导论-插入查询(递归实现)
- 【算法导论学习-22】二叉树专题1:一般二叉树的实现和常用处理函数
- 数据结构算法学习--stack实现
- C++最大堆实现priority_queue优先级队列(算法导论)
- 算法导论------------栈(stack)简单的数组实现
- 算法导论学习笔记—Strassen算法的Java实现
- 【算法导论学习-20】单链表(single linked)的实现
- 【算法导论学习-009】仅使用Random(0,1)实现Random(a,b)
- 算法导论学习笔记(1)——快排中hoarePartition的实现(问题已解决)
- 插入排序,合并排序,堆排序,快速排序,计数排序的实现(算法导论)
- 学习算法导论
- 学习算法导论-选择排序
- 学习算法导论-合并排序
- 双向链表的单指针实现(算法导论习题)
- 发现shedskin的example是学习算法的好材料(Python实现)
- 强大的DataGrid组件[11]_主从(Master-Details)的实现——Silverlight学习笔记[19]
- OpenCV学习——眼部识别算法实现