《剑指offer》-用两个栈实现队列
2017-04-05 19:17
211 查看
题目:用两个栈实现一个队列,完成在队尾插入结点和在队头删除结点的功能。
实在不知道该怎么写。。。。。。只能按照书上给的代码改成java版本的了,哈哈哈……机智如我
实在不知道该怎么写。。。。。。只能按照书上给的代码改成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; } }
相关文章推荐
- 剑指offer两个栈实现队列的c++写法(九度1512)
- 剑指Offer之用两个栈实现队列
- 剑指offer第五题【用两个栈实现队列】c++实现
- 牛客网-《剑指offer》-用两个栈实现队列
- 《剑指offer》——用两个栈实现队列
- 《剑指Offer》面试题-用两个栈实现队列
- 面试题07_用两个栈实现队列——剑指offer系列
- 《剑指Offer》读书笔记05:用两个栈实现队列
- 剑指Offer系列---(9)用两个栈实现队列和用两个队列实现栈
- 《剑指offer》——用两个栈实现队列
- 《剑指offer》面试题七 用两个栈实现队列
- (剑指Offer)面试题7:用两个栈实现队列
- 剑指offer :07 用两个栈实现队列
- JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作(《剑指offer》)
- 《剑指offer》面试题7—用两个栈实现队列
- 剑指offer 面试题7 两个栈实现队列
- 剑指Offer之 - 用两个栈实现队列
- 《剑指Offer》学习笔记--面试题7:用两个栈实现队列
- 剑指offer系列之五:用两个栈实现队列
- 《剑指Offer》面试题:用两个队列实现一个栈