题目:

  用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

解决办法:

  队列先进先出,栈先进后出(stack1和stack2)

  其实主要要注意的点是:

    ①在添加时直接往第一个添加即可

    ②在删除时分情况,

    第一:如果stack2不为空,则直接弹出stack2中的元素即可,因为stack2中的肯定要比stack1中的元素加进来早

    第二:如果stack2是空的,则把stack1中的元素一一弹出并加入到stack2中,之后再弹出

如图测试数据:(结合下面代码看)

 import java.util.Stack;

 public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>(); public void push(int node) {
stack1.push(node);
} public int pop() {
if(stack2.isEmpty()){
while(!stack1.isEmpty()){
stack2.push(stack1.pop());
}
return stack2.pop();
}else{
return stack2.pop();
}
} public static void main(String[] args) {
Solution s = new Solution();
//①
s.push(1);
//②
s.push(2);
//③
s.push(3);
//④
int a = s.pop();
System.out.println(a);
//⑤
int b = s.pop();
System.out.println(b);
//⑥
s.push(4);
//⑦
int c = s.pop();
System.out.println(c);
//⑧
s.push(5);
//⑨
int d = s.pop();
System.out.println(d);
//⑩
int e = s.pop();
System.out.println(e);
}
}

最新文章

  1. 【python】安装指定模块
  2. 在asp.net mvc4项目里bootstrap datetimepicker控件的使用
  3. C#发送邮件时提示:“不允许使用邮箱名称。服务器响应为:”的错误解决办法
  4. [c语言]字符数组、字符串定义
  5. ubuntu将命令写在一个文件里,执行文件,source命令
  6. jquery元素插入、删除、清空
  7. 更新安装xcode7插件
  8. 如何创建sequence
  9. big data vs HPC
  10. 基于Hadoop生态圈的数据仓库实践 —— ETL
  11. java之sleep、wait、yield、join、notify乱解
  12. Shell编程之Shift的用法
  13. hadoop集群环境搭建之安装配置hadoop集群
  14. 设计模式之Application Programs and Toolkits
  15. 在MacOS下Python安装lxml报错xmlversion.h not found 报错的解决方案
  16. iOS屏幕旋转 浅析
  17. Linux学习进阶示意图
  18. 百度地图经纬度和地址互转(Java代码)
  19. Objective-C 字符串与数值互相转换
  20. VB.NET的MsgBox

热门文章

  1. Selenium+java - 截图操作
  2. Chrome 开发工具之 Memory
  3. F#周报2019年第33期
  4. 定时清理docker私服镜像
  5. Mina实现Socket通信完整过程
  6. Day 05--最终修改(一)
  7. 弹性布局(display:flex;)属性详解
  8. lombok 下的@Builder注解用法
  9. 本地项目上传到github上最直接步骤
  10. 第二篇 特征点匹配以及openvslam中的相关实现详解