java数组实现栈

java数组实现栈

前言:所谓栈是一种数据结构,其存取数据的特点是后进先出,并且只能在一端(即栈顶top)对数据进行增加和删除操作。就像往一个水桶里放东西一样,只能从入口处(栈顶)存取物品,最先放进去的物品在最底下,最后放进去的物品在最顶上。
就说这么多了,实现起来也很简单。

public class ArrayStack {

    private int length;             //定义栈的长度
    private Object[] array;         //存放数据的数组
    private int point;              //指向栈顶的指针(下标)

    //初始化栈
    public ArrayStack(int length) {
        this.length = length;           //指定栈的大小
        point = -1;                     //默认为-1(空栈)
        array = new Object[length];     //数组的长度即为栈的大小
    }

    //向栈存放元素,即压栈
    public void push(Object obj) throws Exception {
        if (point == array.length - 1) {
            throw new Exception("栈已经满了");
        }
        array[++point] = obj;
    }

    //从栈里取元素,即弹栈
    public Object pop() throws Exception {
        if (point == -1) {
            throw new Exception("栈已经空了");
        }
        return array[point--];
    }

    //遍历栈里的元素
    public void out() {
        for (Object obj : array) {
            System.out.println(obj);
        }
    }


    /*
    *
    * 测试
    *
    * */
    public static void main(String[] args) throws Exception {
        ArrayStack arrayStack = new ArrayStack(5);
        for (int i = 0; i < 5; i++) {
            arrayStack.push(i);
        }
        arrayStack.pop();                   //弹栈
        arrayStack.push("test");       	    //压栈
        arrayStack.out();                  //查看栈内所有元素
    }
}

打印结果为
0
1
2
3
test

猜你喜欢

转载自blog.csdn.net/qq_42815754/article/details/85109273
今日推荐