数据结构之堆栈

数据结构之堆栈

 栈:是一种只能在一个位置进行数据操作的数据结构

使用top相当于游标,使用top标识栈顶,弹出的过程,就是弹出top所在的位置的数据,然后将top向下移动

 

public class Stack {
    //top标记栈顶
    int top;

    //size表示栈的深度
    int maxSize;

    //data存放栈中的数据
    Object[] data;

    //对栈进行初始化
    public Stack(int size){
        this.maxSize = size;
        top = -1;
        data = new Object[maxSize];
    }

    //判断栈是否满了
    public boolean isFull(){
        return top + 1 == maxSize;
    }

    //往栈压数据
    public void push(Object obj){
        if(isFull()){
            System.out.println("栈已满");
            return;
        }
        data[++top] = obj;
    }

    //判断栈是否为null
    public boolean isEmpty(){
        return top == -1;
    }

    //从栈拿出数据
    public Object pop()throws Exception{
        if(isEmpty()){
            throw new Exception("栈是空");
        }
        return data[top--];
    }

    public static void main(String[] args) throws Exception {
        Stack stack = new Stack(10);
        stack.push("zhangsan");
        stack.push("lisi");
        stack.push("wangwu");
        System.out.println(stack.pop());
        System.out.println(stack.pop());
        System.out.println(stack.pop());
    }
}

 

原文地址:https://www.cnblogs.com/zhangchiblog/p/8666164.html