剑指offer07:用两个栈实现队列
来源:互联网 发布:php服务端开发 编辑:程序博客网 时间:2024/06/05 15:36
Java实现
用两个栈实现一个队列,实现对了的两个函数 appendTail 和 deleteHead,
分别完成在队列尾插入结点和在队列头部删除结点的功能。
具体操作过程如图所示:
将stack1中的元素依次弹出,并push进stack2中,此时,stack1为空, stack2为初始stack1的 倒序, 即原来stack1中栈底的元素 在 stack2的顶, 原来stack1中顶 在 stack2中为 底,此时完成顺序的转换。
只需依次,弹出stack2顶部的元素,直至stack2为空时候。
import java.util.*;public class Main<T> { private Stack<T> stack1 = new Stack<T>(); private Stack<T> stack2 = new Stack<T>(); public void appendTail(T t){ stack1.push(t); } public T deleteHead(){ if(stack2.isEmpty()){ while (!stack1.isEmpty()){ stack2.push(stack1.pop()); } } if(stack2.isEmpty()){ try { throw new Exception("队列为空"); } catch (Exception e) { e.printStackTrace(); } } return stack2.pop(); } public static void main(String[] args) { Main<String> m = new Main<>(); m.appendTail("1"); m.appendTail("2"); m.appendTail("3"); String result = m.deleteHead(); System.out.println("被删除头节点: " + result); }}
0 0
- 剑指offer07:用两个栈实现队列
- 剑指offer07题两个栈实现一个队列(c语言)
- 【面试题】剑指offer07--两个栈实现一个队列
- [剑指offer]用两个栈实现队列
- 【剑指offer】用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 剑指Offer-用两个栈实现队列
- 剑指offer:用两个栈实现队列
- 《剑指offer》用两个栈实现队列
- 用两个栈实现队列(剑指offer)
- 剑指 offer:用两个栈实现队列
- 【剑指Offer】用两个栈实现队列
- 剑指offer-用两个栈实现队列
- 《剑指offer》-用两个栈实现队列
- 剑指offer 用两个栈实现队列
- 剑指offer 用两个栈实现队列
- [剑指offer]用两个栈实现队列
- 剑指offer--用两个栈实现队列
- 算法训练之递归
- php通用权限管理设计
- linux安装mysql
- java中class类
- Spring MVC学习(四)-------Controller接口控制器详解5
- 剑指offer07:用两个栈实现队列
- 《异类》读书笔记
- 事务
- 2016东莞市特长生考试 字串距离(dp)
- Spring MVC学习(四)-------Controller接口控制器详解6
- ActiveMQ 概述
- 搞定一切---正则表达式
- c 程序设计语言 第二版 练习题 6-5
- 115个Java面试题和答案