0
点赞
收藏
分享

微信扫一扫

Stack 栈的实现与应用

幸福的无所谓 2023-05-30 阅读 64

目录

1. 概念

2. 常用的栈的方法

2.1 方法

2.2 代码

3. 自己实现栈

3.1 构造MyStack

3.2 push()

3.3 ensureCapacity()

3.4 pop()

3.5 peek()

3.6 empty()

3.7 szie()

4. 栈的应用


1. 概念

2. 常用的栈的方法

2.1 方法

方法

功能
push()在栈顶插入元素
pop()删除栈顶元素,并返回该元素的值。如果栈为空,则抛出EmptyStackException异常
peek()返回该元素的值。如果栈为空,则抛出EmptyStackException异常
empty()如果栈为空返回true,或者返回false
size()

返回栈内元素个数

2.2 代码

public static void main(String[] args) {
        Stack<Character> stack = new Stack<>();
        //插入A B C
        stack.push('A');
        stack.push('B');
        stack.push('C');
        System.out.println(stack.size());//获得栈中元素个数,打印   3
        System.out.println(stack.pop());//删除并获得栈顶元素 C
        System.out.println(stack.pop());//删除并获得栈顶元素 B
        stack.push('D');//栈顶插入D
        System.out.println(stack.empty());
}

3. 自己实现栈

3.1 构造MyStack

public class MyStack {
    public int[] elem;
    public int size = 0;
    public MyStack(){
        elem = new int[10];
    }
    //...
}

3.2 push()

    //入栈、压栈
    public void push(int val){
        if(size == elem.length){
            ensureCapacity();
        }
        elem[size] = val;
        size++;
    }

3.3 ensureCapacity()

private void ensureCapacity() {
        elem = Arrays.copyOf(elem,2 * elem.length);
}

3.4 pop()

    public int pop(){
        if(size == 0 ){
            throw new EmptyStackException();
        }
        return elem[--size];
    }

3.5 peek()

    //获得栈顶
    public int peek(){
        if(size == 0){
            throw new EmptyStackException();
        }
        int key = size - 1;
        return elem[key];
    }

3.6 empty()

    //检查栈是否为空
    public boolean empty(){
        return size == 0;
    }

3.7 szie()

    //栈内元素的个数
    public int size(){
        return size;
    }

4. 栈的应用

举报

相关推荐

0 条评论