六、用Array模拟简易版Stack

一、核心思想

栈只允许访问一个数据项,也就是最后插入的数据项,只有移除了这个数据项才能访问倒数第二个插入的数据项。先进后出。

二、源码

package com.ctw;

/**
 * @author TongWei.Chen 2018-09-29 13:37:14
 * @Description:
 * @Project sjjg-sf
 */
public class MyStack {

    private int maxSize;

    private long[] arr;

    // 栈顶位置
    private int top;

    // 构造器
    public MyStack(int size) {
        maxSize = size;
        arr = new long[maxSize];
        top = -1;
    }

    // 入栈
    public void push(long value) {
        arr[++ top] = value;
        /*
         * 上面一句话等于下面两句话:
         * top ++;
         * arr[top] = value;
         */
    }

    // 出栈
    public long pop() {
        return arr[top --];
        /*
         * 上面一句话等于下面三句话:
         * long value = arr[top];
         * top --;
         * return value;
         */
    }

    // 访问栈顶元素
    public long peek() {
        return arr[top];
    }

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

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

    public static void main(String[] args) {
        MyStack myStack = new MyStack(6);
        myStack.push(1L);
        myStack.push(2L);
        myStack.push(3L);
        myStack.push(4L);
        myStack.push(-100L);
        System.out.println(myStack.peek());
        while (! myStack.isEmpty()) {
            System.out.println(myStack.pop());
        }
    }
}

三、广告

  • 码云地址

    https://gitee.com/geekerdream/

  • QQ群【Java初学者学习交流群】:458430385

  • 微信公众号【Java码农社区】

    六、用Array模拟简易版Stack_第1张图片
    img
  • 今日头条号:编程界的小学生

你可能感兴趣的:(六、用Array模拟简易版Stack)