数据结构之栈

栈原理

FIFO 先进后出

 

使用数组实现栈

栈实现

package com.yhq.buildspringmvc.stack;

/**
 * 栈
 *
 * @author YuHaiQing
 * @date 2018-04-23 17:18
 */
public class StackX {

    /**
     * 栈长度
     */
    private int maxSize;
    /**
     * 栈存储数组
     */
    private Object[] stackArray;
    /**
     * 栈顶
     */
    private int top;

    public StackX(int size){
        this.maxSize = size;
        stackArray = new Object[maxSize];
        top = -1;
    }

    /**
     * 入栈
     */
    public void push(Object o){
        stackArray[++top] = o;
    }

    /**
     * 出栈
     */
    public Object pop(){
        return stackArray[top--];
    }

    /**
     * 当前栈顶信息
     */
    public Object peek(){
        return stackArray[top];
    }

    /**
     * 是否为空
     */
    public boolean isEmpty(){
        return (top == -1);
    }

    /**
     * 是否栈满
     */
    public boolean full(){
        return (top == maxSize - 1);
    }
}

 

使用栈

package com.yhq.buildspringmvc.stack;

/**
 * 栈
 *
 * @author YuHaiQing
 * @date 2018-04-23 17:14
 */
public class StackDemo {

    public static void main(String[] args){

        StackX stackX = new StackX(10);

        stackX.push(20);
        stackX.push(30);
        stackX.push(40);
        stackX.push(50);
        stackX.push(60);
        stackX.push(70);

        System.out.println(stackX.pop());
        System.out.println(stackX.peek());
    }
}

输入结果

70

60

  

 

posted @ 2018-04-25 16:43  余海清  阅读(120)  评论(0编辑  收藏  举报