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

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

作者: 逍遥白亦 | 来源:发表于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