目录

裴先生
裴先生
发布于 2021-03-13 / 0 阅读
0
0

代码实现栈结构

原创
栈(Stack)又称先进后出(Last In First Out)的线性表简称LIFO结构,栈结构包含栈顶和栈底。
栈顶:插入和删除的一端; 栈底:不会有任何操作的一端; 不含任何数据元素的栈称为空栈栈的插入操作,叫做进栈,也称压栈,入栈 栈的删除操作,叫做出栈,也有的叫做弹栈
import java.util.Arrays;
import java.util.EmptyStackException;

public class MyFirstStack<T> {
    private T[] props;
    private int size = 0;
    private static final int INIT_CAPACITY = 16;

    public MyFirstStack() {
        props = (T[]) new Object[INIT_CAPACITY];
    }

    public void push(T elem) {
        ensureCapacity();
        props[size++] = elem;
    }

    public T pop() {
        if (size == 0)
            throw new EmptyStackException();
        int tempSize = --size;
        T t = props[tempSize];
        props[tempSize] = null;
        return t;
    }

    private void ensureCapacity() {
        if (props.length <= size) {
            System.out.println("扩容");
            props = Arrays.copyOf(props, 2 * size + 1);
        }
    }
}

class MyStackDemo {
    public static void main(String[] args) {
        MyFirstStack<String> stringMyStack = new MyFirstStack<>();
        for (int i = 0; i < 100; i++) {
            System.out.println("push" + (i + 1) + "");
            stringMyStack.push((i + 1) + "");
        }
        for (int i = 90; i > 0; i--) {
            System.out.println("pop" + stringMyStack.pop());
        }
    }
}

原创

版权声明:本博客原创文章,由 裴先生 2021年03月13日 发表。
转载说明:除特殊说明外本站文章皆由 CC BY-NC-SA 4.0 协议发布,转载须注明出处。


评论