栈(java实现)

栈是特殊的线性表,只能从表尾进行插入和删除,称为入栈和出栈。


image.png
package org.example.ch3;

/**
 * stack
 * @param <T> element type
 */
public class Stack<T> {
    // capability of stack
    private static int MAX_SIZE = 20;
    private int size;
    private T[] elements;

    /**
     * initiate empty stack.
     */
    public Stack() {
        size = 0;
        elements = (T[]) new Object[MAX_SIZE];
    }

    /**
     * push data into stack
     * @param data data
     * @return <code>true</code> if push success
     */
    public boolean push(T data) {
        //outage of stack
        if (size > MAX_SIZE) {
            return false;
        }

        elements[size++] = data;
        return true;
    }

    /**
     * pop data from stack.
     * @return data from top of stack
     */
    public T pop() {
        if (size == 0) {
            return null;
        }
        return elements[--size];
    }

    /**
     * read top of stack.
     * @return data of the stack
     */
    public T getTop() {
        if (size > 0) {
            return elements[size - 1];
        }
        return null;
    }
    
    public boolean isEmpty() {
        return size == 0;
    }

    public void clear() {
        size = 0;
    }

    public int getSize() {
        return size;
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容