Java中使用栈实现一个队列,实用代码

本功能提供下面四个方法:

push(x) ——添加元素x到队列。

pop()——从队列中删除前面的元素。

peek()——得到前面的元素。

empty()——返回队列是否为空。

网络配图

Java的解决方案

实例代码如下:

class MyQueue {
Stack<Integer> temp = new Stack<Integer>();
Stack<Integer> value = new Stack<Integer>();
public void push(int x) {
if(value.isEmpty()){
value.push(x);
}else{
while(!value.isEmpty()){
temp.push(value.pop());
}
value.push(x);
while(!temp.isEmpty()){
value.push(temp.pop());
}
}
}
public void pop() {
value.pop();
}
public int peek() {
return value.peek();
}
public boolean empty() {
return value.isEmpty();
}
}

原文发布于微信公众号 - Java学习网(javalearns)

原文发表时间:2017-12-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android相关

Linux编程--获取当前时间

最近在重新编译ijkplayer,并且希望能够打印出来各个阶段的时间,以便对于ijkplayer进一步调优

3012
来自专栏小樱的经验随笔

【批处理学习笔记】第七课:简单的批处理命令(6)

set 命令   set     设置环境变量 [适用场合]  设置声卡和路径等时用到 [用  法]  set [环境变量]=[字符串]        ...

3225
来自专栏向治洪

android classloader双亲委托模式

概述 ClassLoader的双亲委托模式:classloader 按级别分为三个级别:最上级 : bootstrap classLoader(根类加载器) ;...

2548
来自专栏lestat's blog

phpexcel踩坑记

最近在使用phpexcel扩展处理表格导入的时候,遇到两个坑,现做以下记录 坑一:excel表中的富文本导入后数据始终不对 解决方法:假设$temp为循环读...

2744
来自专栏Java编程技术

并发队列-无界阻塞优先级队列PriorityBlockingQueue原理探究

PriorityBlockingQueue是带优先级的无界阻塞队列,每次出队都返回优先级最高的元素,是二叉树最小堆的实现,研究过数组方式存放最小堆节点的都知道,...

1713
来自专栏架构说

redis-哈希表自动扩容

@(架构说)[redis] 为了回答上次遗留问题 哈希表如何扩容问题? 重点内容: 1 注释代码:最新版本 https://github.com...

5553
来自专栏zhisheng

Windows 64位下安装Redis超详细教程

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(...

39212
来自专栏芋道源码1024

Java中高级面试题(1)

1、ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)。

690
来自专栏尾尾部落

[剑指offer] 二叉搜索树的后序遍历序列

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

2042
来自专栏IT技术精选文摘

JVM参数详解及OOM

JVM参数 堆的限制 JVM中最大堆大小有三方面限制: 相关操作系统的数据模型(32-bt还是64-bit)限制 系统的可用虚拟内存限制 系统的可用物理内存限制...

2746

扫码关注云+社区

领取腾讯云代金券