《剑指offer》-用两个栈实现队列
来源:互联网 发布:canon mp288清零软件 编辑:程序博客网 时间:2024/06/05 09:29
题目:用两个栈实现一个队列,完成在队尾插入结点和在队头删除结点的功能。
实在不知道该怎么写。。。。。。只能按照书上给的代码改成java版本的了,哈哈哈……机智如我
import java.util.Stack;public class CQueue { public static Stack<Integer> stack1 = new Stack<Integer>(); public static Stack<Integer> stack2 = new Stack<Integer>(); public static void main(String[] args) { // TODO Auto-generated method stub CQueue c = new CQueue(); for(int i = 0; i < 5; i++){ c.appendTail(i); c.printQueue(); } for(int i = 0; i < 3; i++){ c.deleteHead(); c.printQueue(); } } public void printQueue(){//打印的是出队的顺序 Stack<Integer> tmp = new Stack<>(); while(!stack2.empty()){ tmp.push(stack2.pop()); System.out.print(tmp.peek() + " "); } while(!tmp.empty()){ stack2.push(tmp.pop()); } while(!stack1.empty()){ tmp.push(stack1.pop()); } while(!tmp.empty()){ stack1.push(tmp.pop()); System.out.print(stack1.peek() + " "); } System.out.println(); } public void appendTail(Integer i){ stack1.push(i); } public int deleteHead(){ if(stack2.empty()){ while(!stack1.empty()){ Integer tmp = stack1.pop(); stack2.push(tmp); } } if(stack2.empty()){ System.out.println("queue is empty"); } Integer i = stack2.pop(); return i; }}
0 0
- [剑指offer]用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指Offer-用两个栈实现队列
- 剑指offer:用两个栈实现队列
- 《剑指offer》用两个栈实现队列
- 用两个栈实现队列(剑指offer)
- 剑指 offer:用两个栈实现队列
- 【剑指Offer】用两个栈实现队列
- 剑指offer-用两个栈实现队列
- 《剑指offer》-用两个栈实现队列
- 剑指offer 用两个栈实现队列
- 剑指offer 用两个栈实现队列
- [剑指offer]用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指offer|用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer----用两个栈实现队列
- 汽车加油问题
- 单因素方差分析,卡方检验,充分条件必要条件
- 逐步优化看出Java8的强大
- 初始化指针是否需要分配内存空间
- 20个位运算技巧
- 《剑指offer》-用两个栈实现队列
- 贪心算法(2)
- 《机器学习实战》第三章:决策树(1)基本概念
- 【Java之IO】1.字节流和字符流
- Vue.js学习系列(四十四)-- 自定义事件
- 删数问题
- 贪心算法(1)
- 1361 知识排名 (排序)
- 最优分解问题