• Java-Stack&Queue-LeetCode


    Implement Queue using Stacks
    
    class MyQueue {  
        Stack<Integer> s1 = new Stack<>();  
        Stack<Integer> s2 = new Stack<>();  
      
        // Push element x to the back of queue.  
        public void push(int x) {  
            s1.push(x);  
        }  
      
        // Removes the element from in front of queue.  
        public void pop() {  
            if(!s2.isEmpty()) s2.pop();  
            else {  
                while(!s1.isEmpty()) s2.push(s1.pop());  
                s2.pop();  
            }  
        }  
      
        // Get the front element.  
        public int peek() {  
            if(!s2.isEmpty()) return s2.peek();  
            else {  
                while(!s1.isEmpty()) s2.push(s1.pop());  
                return s2.peek();  
            }  
        }  
      
        // Return whether the queue is empty.  
        public boolean empty() {  
            return s1.empty() && s2.empty();  
        }  
    }  
    Implement Stack using Queues
    
    class MyStack {  
        // Push element x onto stack.  
        Queue<Integer> q1 = new LinkedList<Integer>();  
        Queue<Integer> q2 = new LinkedList<Integer>();  
          
        public void push(int x) {  
            q1.offer(x);  
        }  
      
        // Removes the element on top of the stack.  
        public void pop() {  
            while(q1.size()>1) q2.offer(q1.poll());  
            q1.poll();  
            Queue<Integer> q = q1;  
            q1 = q2;  
            q2 = q;  
        }  
      
        // Get the top element.  
        public int top() {  
            while(q1.size()>1) q2.offer(q1.poll());  
            int x = q1.poll();  
            q2.offer(x);  
            Queue<Integer> q = q1;  
            q1 = q2;  
            q2 = q;  
            return x;  
        }  
      
        // Return whether the stack is empty.  
        public boolean empty() {  
            return q1.isEmpty();  
        }  
    }  

    offer 添加一个元素并返回true 如果队列已满,则返回false
    poll 移除并返问队列头部的元素 如果队列为空,则返回null
    peek 返回队列头部的元素 如果队列为空,则返回null
    put 添加一个元素 如果队列满,则阻塞
    take 移除并返回队列头部的元素 如果队列为空,则阻塞
    element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常

    add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常
    remove 移除并返回队列头部的元素 如果队列为空,则抛出一个
    NoSuchElementException异常

    注意:poll和peek方法出错进返回null。因此,向队列中插入null值是不合法的。

    JavaScript:

    http://www.111cn.net/wy/js-ajax/74924.htm

    UNshift(); --> pop()属于Queue先进先出

    push();---> pop()属于stack后进先出

    push是在末尾添加,而unshift则是在开头添加

  • 相关阅读:
    一些基本的操作,编译,构建,单元测试,安装,网站生成和基于Maven部署项目。
    Maven目标
    Maven是什么?
    Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。
    mvn archetype:generate 创建Maven项目
    Maven是一个项目管理工具
    Maven项目对象模型(POM)
    e816. 创建工具栏
    e836. 设置JTabbedPane中卡片的提示语
    e834. 设置JTabbedPane中卡片的位置
  • 原文地址:https://www.cnblogs.com/Decmber/p/4921909.html
Copyright © 2020-2023  润新知