zoukankan      html  css  js  c++  java
  • Java 实现栈,队列

    package base.structure;
    
    /**
     * @program: Algorithm4J
     * @description: 实现一个Stack
     * @author: Mr.Dai
     * @create: 2018-12-06 15:25
     **/
    public class Stack<T> {
    
        // point
        int n;
        // arrays implement
        T [] elements;
    
        // 初始化一个栈
        public   Stack(){
            n=0;
            elements= ((T[]) new Object[20]);
        }
    
        public  void push(T item){
            if(n==elements.length){
                resize(elements.length*2);
            }
            elements[n++]=item;
        }
    
        // 调控数组大小
        private void resize(int i) {
            T[] arrays=(T[])new Object[i];
            System.arraycopy(elements,0,arrays,0,elements.length);
            elements=arrays;
        }
    
        public T pop(){
            if(isEmpty()) throw new ArrayIndexOutOfBoundsException();
            T x=elements[n-1];
            n--;
            return x;
        }
        public boolean isEmpty(){
            return n==0;
        }
        public  int Size(){return n;}
    
    }

     队列

    package base.structure;
    
    /**
     * @program: Algorithm4J
     * @description: 实现队列
     * @author: Mr.Dai
     * @create: 2018-12-06 15:37
     **/
    public class Queue<T> {
    
        // tail point
        private int tailp;
        // head point
        private int headp;
        // save arrays
        private T [] elements;
    
        public Queue(){
            tailp=0;
            elements=(T[])new Object[20];
        }
    
        // 入队
        public void enqueue(T item){
            if(tailp==elements.length){
                resize(elements.length*2);
            }
            elements[tailp++]=item;
        }
        // 调控数组大小
        private void resize(int i) {
            T[] arrays=(T[])new Object[i];
            System.arraycopy(elements,0,arrays,0,elements.length);
            elements=arrays;
        }
        // 出队
        public T dequeue(){
            if (isEmpty()) throw new ArrayIndexOutOfBoundsException();
            T val=elements[headp];
            headp++;
            return val;
        }
    
        boolean isEmpty(){
            return headp==tailp;
        }
    
        public int Size(){
            return tailp-headp;
        }
    
    }
  • 相关阅读:
    虚拟机安装VMware Tools
    SVN源码泄露漏洞
    为什么站点使用https加密之后还能看到相关数据
    AWVS11使用教程——Acunetix Web Vulnerability Scanner 11.x
    接口测试_RESTClient基本使用
    【pwnable.kr】coin1
    【pwnable.kr】 mistake
    【pwnable.kr】leg
    【pwnable.kr】random
    【pwnable.kr】passcode
  • 原文地址:https://www.cnblogs.com/dgwblog/p/10085059.html
Copyright © 2011-2022 走看看