美文网首页
自己动手写数据结构之栈的实现

自己动手写数据结构之栈的实现

作者: 逍遥白亦 | 来源:发表于2020-11-22 23:10 被阅读0次

栈的实现

1 定义

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

类似于一个狭窄的山洞,只有一个出口,所以谁后进来谁就可以先出去

2 基本操作和元素

入栈(PUSH)

出栈(POP)

栈顶元素 top

3 实现一个栈

public class Stack<E> {

    private E[] stackArray;

    private int maxSize;

    private int top;
    
    @SuppressWarnings("unchecked")
    public Stack(int maxSize) {
        this.stackArray = (E[]) new Object[maxSize];
        this.maxSize = maxSize;
        this.top = -1;
    }

    boolean push(E data) throws Exception {
        if (isFull()){
            throw new Exception("The stack is Full");
        }

        stackArray[++top] = data;
        return true;
    }

    public E pop() throws Exception{
        if (isEmpty()){
            throw new Exception("The stack is Empty");
        }

        return stackArray[top--];

    }

    public E peek(){
        return stackArray[top];
    }

    private boolean isEmpty(){
        return top == -1;
    }

    private boolean isFull(){
        return top == maxSize-1;
    }
}

相关文章

网友评论

      本文标题:自己动手写数据结构之栈的实现

      本文链接:https://www.haomeiwen.com/subject/qyeyiktx.html