栈的模拟实现(Java)

目录

  • 1、 栈的概念
  • 2、栈的使用
  • 3、栈的模拟实现

1、 栈的概念

:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
压栈:栈的插入操作叫做 进栈 / 压栈 / 入栈 ,入数据在栈顶。
出栈:栈的删除操作叫做出栈。出数据在栈顶。
栈的模拟实现(Java)_第1张图片

2、栈的使用

栈的模拟实现(Java)_第2张图片

3、栈的模拟实现

import java.util.Arrays;

public class MyStack {
    int[] array;
    int size;
    public MyStack(){
        array = new int[32];
    }
    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,开发语言,数据结构,算法)