【Java数据结构】线性表-栈

线性表-栈

  • 概念
  • 栈的使用
  • 栈的模拟实现

概念

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。

压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。

出栈:栈的删除操作叫做出栈。出数据在栈顶。

【Java数据结构】线性表-栈_第1张图片

栈的使用

【Java数据结构】线性表-栈_第2张图片

栈的模拟实现

public class MyStack {
    int[] array;
    //数组实现
    int size;
    public MyStack(){
        array = new int[3];
        //默认初始化容量为3
    }
    public int push(int e){
        ensureCapacity();//检查是否需要扩容
        array[size++] = e;
        return e;
    }
    public int pop(){
        //从栈顶弹出元素
        int e = peek();
        size--;
        return e;
    }
    public int peek(){
        //只查看栈顶的元素 不弹出
        if(empty()){
            throw new RuntimeException("栈为空,无法获取栈顶元素");
        }
        return array[size-1];
    }
    public int size(){
        //获取栈的大小
        return size;
    }
    public boolean empty(){
        //判断栈是否为空
        return 0 == size;
    }
    private void ensureCapacity(){
        //扩容函数
        if(size == array.length){
            array = Arrays.copyOf(array, size*2);
        }
    }
}

你可能感兴趣的:(Java数据结构,java,数据结构)