前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >由两个栈组成的队列2.由两个栈组成的队列

由两个栈组成的队列2.由两个栈组成的队列

作者头像
仇诺伊
发布于 2018-09-12 06:42:36
发布于 2018-09-12 06:42:36
44300
代码可运行
举报
文章被收录于专栏:佳爷的后花媛佳爷的后花媛
运行总次数:0
代码可运行

2.由两个栈组成的队列


题目:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)

解题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 
 * 编写一个类,用两个栈实现队列,支持队列的基本操作(add、poll、peek)。
 * 
 * @author dream
 *
 */
public class Problem02_TwoStacksImplementQueue {

    public static class myQueue{
        
        Stack<Integer> stack1;
        Stack<Integer> stack2;
        
        public myQueue() {
            stack1 = new Stack<Integer>();
            stack2 = new Stack<Integer>();
        }
        /**
         * add只负责往stack1里面添加数据
         * @param newNum
         */
        public void add(Integer newNum){
            stack1.push(newNum);
        }
        
        /**
         * 这里要注意两点:
         * 1.stack1要一次性压入stack2
         * 2.stack2不为空,stack1绝不能向stack2压入数据
         * @return
         */
        public Integer poll(){
            if(stack1.isEmpty() && stack2.isEmpty()){
                throw new RuntimeException("Queue is Empty");
            }else if(stack2.isEmpty()){
                while (!stack1.isEmpty()) {
                    stack2.push(stack1.pop());
                }
            }
            return stack2.pop();
        }
        
        public Integer peek(){
            if(stack1.isEmpty() && stack2.isEmpty()){
                throw new RuntimeException("Queue is Empty");
            }else if(stack2.isEmpty()){
                while (!stack1.isEmpty()) {
                    stack2.push(stack1.pop());
                }
            }
            return stack2.peek();
        }
    }
    
    public static void main(String[] args) {
        myQueue mQueue = new myQueue();
        mQueue.add(1);
        mQueue.add(2);
        mQueue.add(3);
        System.out.println(mQueue.peek());
        System.out.println(mQueue.poll());
        System.out.println(mQueue.peek());
        System.out.println(mQueue.poll());
        System.out.println(mQueue.peek());
        System.out.println(mQueue.poll());
        
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.06.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【React】:Refs
Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。
WEBJ2EE
2020/04/07
1.1K0
React的ref是怎样调用其他元素?
ref 可以理解为指向React 元素的变量,方便其他组件访问这个React元素。
Learn-anything.cn
2021/11/28
1K0
小结React(三):state、props、Refs
在React中state、props、Refs都是最基础的概念,本文将同时梳理下这三个知识点,主要内容包括:
前端林子
2019/05/02
7.6K1
小结React(三):state、props、Refs
[OHIF-Viewers]医疗数字阅片-医学影像-REACT-React.createRef()-Refs and the DOM关于回调 refs 的说明
Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。
landv
2020/07/09
1.8K0
2021前端react面试题汇总
(2)区别 Redux更多的是遵循Flux模式的一种实现,是一个 JavaScript库,它关注点主要是以下几方面∶
zz1998
2021/09/24
2.4K0
超性感的React Hooks(十)useRef
在函数式组件中,useRef 是一个返回可变引用对象的函数。该对象.current属性的初始值为useRef传入的参数initialVale。
用户6901603
2020/07/27
3.4K0
超性感的React Hooks(十)useRef
【React】你想知道的关于 Refs 的知识都在这了
Refs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。
Nealyang
2019/11/08
3.1K0
React 16 新特性全解(上)
本次系列分上下两篇文章,上主要介绍从v16.0~ 16.4的新特性,下主要介绍16.5~16.8。下面就开始吧~
前端迷
2019/07/12
1.6K0
React 16 新特性全解(上)
浅谈 React Refs
在React组件中,props是父组件与子组件的唯一通信方式,但是在某些情况下我们需要在props之外强制修改子组件或DOM元素,这种情况下React提供了Refs解决
IMWeb前端团队
2019/12/03
1K0
浅谈 React Refs
React 16.3新API
之前也有context,相当于自动向下传递的props,子树中的任意组件都可以从context中按需取值(配合contextTypes声明)
ayqy贾杰
2019/06/12
1.2K0
React 16.3新API
React 中refs的使用方法和步骤
在 React 中,ref 是一种用于访问组件或 DOM 元素的引用的特殊属性。在组件中存储对 DOM 节点或组件实例的引用,直接访问和操作
王小婷
2023/10/10
4580
react入门(三):state、ref & dom简解
作用:组件内部的状态重新更新时,可以控制组件内部重新渲染(不需要重新调取组件也可以重新渲染)
柴小智
2020/02/12
9060
React Forwarding高阶组件传递Refs
通常情况下,我们想获取一个组建或则一个HTML元素的实例通过 Ref特性 就可以实现,但是某些时候我们需要在子父级组建中传递使用实例,Forwarding Refs提供了一种技术手段来满足这个要求,特别是开发一些重复使用的组建库时。比如下面的例子:
随风溜达的向日葵
2018/08/15
1.3K0
React 进阶 - Ref
ref 对象就是用 createRef 或者 useRef 创建出来的对象,一个标准的 ref 对象应该是如下的样子:
Cellinlab
2023/05/17
1.8K0
React 进阶 - Ref
React ref 的前世今生
众所周知,React 通过声明式的渲染机制把复杂的 DOM 操作抽象成为简单的 state 与 props 操作,一时圈粉无数,一夜间将前端工程师从面条式的 DOM 操作中拯救出来。尽管我们一再强调在 React 开发中尽量避免 DOM 操作,但在一些场景中仍然无法避免。当然 React 并没有把路堵死,它提供了 ref 用于访问在 render 方法中创建的 DOM 元素或者是 React 组件实例。
Nealyang
2019/09/29
9020
React Ref 使用总结
useRef 还可以传入一个初始值,这个值会保存在 ref.current 中,上面代码中,如果不给 div 元素传递 ref={divRef},则 divRef.current 的值将是我们传入的初始值。
多云转晴
2020/09/08
7.1K0
React Ref 使用总结
百度前端高频react面试题(持续更新中)_2023-02-27
2. 尽量不要在 componentWillReviceProps 里使用 setState,如果一定要使用,那么需要判断结束条件,不然会出现无限重渲染,导致页面崩溃
用户10358021
2023/02/27
2.5K0
字节前端面试被问到的react问题
Refs 提供了一种方式,用于访问在 render 方法中创建的 React 元素或 DOM 节点。Refs 应该谨慎使用,如下场景使用 Refs 比较适合:
beifeng1996
2022/11/01
2.3K0
这个 hook api,是 useState 的双生兄弟
使用函数创建组件,有一个非常特殊的地方。那就是当组件重新刷新时,组件函数会重新执行。于是在这种情况下,如何在函数内部持久化保存一个数据或者状态就变成了一个需要探讨的问题。
用户6901603
2022/05/24
1.2K0
React16 新特性
于 2017.09.26 Facebook 发布 React v16.0 版本,时至今日已更新到 React v16.6,且引入了大量的令人振奋的新特性,本文章将带领大家根据 React 更新的时间脉络了解 React16 的新特性。
前端迷
2019/08/27
1.2K0
相关推荐
【React】:Refs
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验