博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
232. Implement Queue using Stacks
阅读量:6495 次
发布时间:2019-06-24

本文共 1950 字,大约阅读时间需要 6 分钟。

一、题目

  1、审题

  

  2、分析

    使用栈来实现队列的功能。

 

二、解答

  1、思路

    方法一、

      只修改 Pop 方法,使得栈中元素排序为队列的规则。

1 public class MyQueue { 2      3     Stack
stack; 4 /** Initialize your data structure here. */ 5 public MyQueue() { 6 stack = new Stack<>(); 7 } 8 9 /** Push element x to the back of queue. */10 public void push(int x) {11 if(stack.isEmpty()) {12 stack.push(x);13 }14 else {15 Stack
tmp = new Stack<>();16 while(!stack.isEmpty())17 tmp.push(stack.pop());18 stack.push(x);19 while(!tmp.isEmpty())20 stack.push(tmp.pop());21 }22 }23 24 /** Removes the element from in front of queue and returns that element. */25 public int pop() {26 return stack.pop();27 }28 29 /** Get the front element. */30 public int peek() {31 return stack.peek();32 }33 34 /** Returns whether the queue is empty. */35 public boolean empty() {36 return stack.isEmpty();37 }38 }

 

  方法二、

    使用两个 Stack,input、output。

    push: 压入 input 栈。

    pop、peek: 若 output 不为空,则对 output 操作; 若 output 为空,则将 input 元素全部压入 output,在对 output 操作。

    empty: 当 output、input 全为空时才返回 true。

1 class MyQueue { 2  3     Stack
input = new Stack<>(); 4 Stack
output = new Stack<>(); 5 6 public void push(int x) { 7 input.push(x); 8 } 9 10 public int pop() {11 peek();12 return output.pop();13 }14 15 public int peek() {16 if(output.isEmpty()) {17 while(!input.isEmpty())18 output.push(input.pop());19 }20 return output.peek();21 }22 23 public boolean empty() {24 return input.empty() && output.empty();25 }26 }

 

    

转载于:https://www.cnblogs.com/skillking/p/9930483.html

你可能感兴趣的文章
关于网站的一些js和css常见问题的记录
查看>>
zabbix-3.4 触发器
查看>>
换用代理IP的Webbrowser方法
查看>>
【视频编解码·学习笔记】7. 熵编码算法:基础知识 & 哈夫曼编码
查看>>
spark集群安装部署
查看>>
解析大型.NET ERP系统 设计异常处理模块
查看>>
匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
查看>>
java: web应用中不经意的内存泄露
查看>>
cassandra命令
查看>>
讨论JDK的File.equal()
查看>>
unity替换mesh测试
查看>>
使用自定义材质球,实现NGUI屏幕溶解和灰显
查看>>
解决eclipse ctrl+鼠标左键不能用
查看>>
java对cookie的操作
查看>>
C++vector迭代器失效的问题
查看>>
在Web.config或App.config中的添加自定义配置
查看>>
php源码安全加密之PHP混淆算法.
查看>>
Linux 虚拟内存和物理内存的理解【转】
查看>>
PHP PSR-1 基本代码规范(中文版)
查看>>
【 Gym - 101138J 】Valentina and the Gift Tree(树链剖分)
查看>>