• 005 两个栈组成队列


    一:主题

    1.题目

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

    2.程序思路

      从队列与栈的特点上进行写程序。

      首先,栈的特点是先进后出,而队列是先进先出。

      所以,要实现队列,需要使用两个栈进行组合。

      做法,我以为,让第一个作为push的栈,然后,pop的时候,将第一个栈中的数据都转移到栈2,然后把最上面的弹出来。

      注意点:可能一次性push多个数据,所以,在pop的时候,再去清空栈1。  

    3.程序

    
    
    package com.jun.it.algorithm;

    import java.util.Stack;

    public class QueuesWithTwoStack {
    static Stack<Integer> stack1 = new Stack();
    static Stack<Integer> stack2 = new Stack();
    public static void main(String[] args){
    push(1);
    push(5);
    push(3);
    int val=pop();
    push(8);
    val =pop();
    System.out.println(val);
    }
    public static void push(int val){
    if(!stack2.empty()){
    stack1.push(stack2.pop());
    }
    stack1.push(val);
    }
    public static int pop(){
    while(!stack1.empty()){
    stack2.push(stack1.pop());
    }
    int pop=0;
    if(!stack2.empty()){
    pop = stack2.pop();
    }
    return pop;
    }
    }
    
    

     

      

  • 相关阅读:
    HTML_<select>
    HTML_<a>
    MySQL_知识点
    MySQL_常用SQL语句
    GIT
    MyBatis_传入参数的问题
    js函数防抖与节流总结
    node 常用方法 生成密钥 token验证 验证码生成 (持续更新)
    node 登陆拦截中间件(egg)
    js 给页面容器增加水印
  • 原文地址:https://www.cnblogs.com/juncaoit/p/10244885.html
Copyright © 2020-2023  润新知