0
点赞
收藏
分享

微信扫一扫

opencv知识库:cv2.add()函数和“+”号运算符

ZMXQQ233 2023-12-07 阅读 39
数据结构

在这里插入图片描述

数据结构之栈

概念

特性

先进后出
例如生活中的羽毛球:
在这里插入图片描述

常用方法

在这里插入图片描述

栈模拟实现

接口

public interface IStack {
        void push(int x);

        int pop();

        int peek();

        int size();

        boolean empty();

        boolean full();

}

实现类

public class MyStack implements IStack {
    private int[] elem;
    private int usedSize;//可以存放数据元素的下标

    private static final int DEFAULT_CAPACITY = 10;
    private int size = 0;

    public MyStack() {
        this.elem = new int[DEFAULT_CAPACITY];
        this.size = DEFAULT_CAPACITY;
    }

    public MyStack(int size) {
        this.elem = new int[size];
        this.size = size;
    }

    @Override
    public void push(int x) {
        if (usedSize >= this.size) {
            throw new IllegalArgumentException("栈满了");
        }
        elem[usedSize++] = x;
    }

    @Override
    public int pop() {
        if (full()) {
            throw new IllegalArgumentException("栈空了");
        }
        int m= elem[usedSize-1];
        usedSize--;
        return m;
    }

    @Override
    public int peek() {
        if (full()) {
            throw new IllegalArgumentException("栈空了");
        }
        return elem[usedSize - 1];
    }

    @Override
    public int size() {
        return usedSize;
    }

    @Override
    public boolean empty() {
        return usedSize == 0;
    }

    @Override
    public boolean full() {
        return usedSize == size;
    }
}

举报

相关推荐

0 条评论