Java栈的简单实现

Posted 真正的小明被占用了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java栈的简单实现相关的知识,希望对你有一定的参考价值。

 * 数据结构与算法Java实现 栈
 * 
 * @author 小明
 *
 */
public class MyStack {
    private Node top;// 头指针
    int size;// 长度

    public MyStack() {
        top = null;
        size = 0;
    }

    // 进栈函数
    public void push(Node node) {
        if (size == 0) {// 栈为空时
            top = node;
            size++;
        } else {// 栈不为空时
            node.setNext(top);
            top=node;
            size++;
        }
    }
    //出栈函数
    public void pop() throws IndexException {
        if(size==0) {
            throw new IndexException("索引错误!");
        }else {
            top=top.getNext();//出栈
            size--;
        }
    }
    @Override
    public  String toString() {
        String str=" ";
        Node temp=top;
        while(temp!=null){
            str+=temp.getElement()+" ";
            temp=temp.getNext();
        }
        str="["+str+" ]";
        return str;
    }
    public static void main(String[] args) throws IndexException {
        MyStack mystack=new MyStack();
        mystack.push(new Node(0));
        mystack.push(new Node(1));
        mystack.push(new Node(2));
        mystack.pop();
        mystack.push(new Node(3));
        System.out.println(mystack);
    }
}

class Node<T> {
    private T element;// 元素
    private Node next;// 后继

    public Node(T element) {// 初始化函数
        this.element = element;
        this.next = null;
    }

    public void setNext(Node node) {
        this.next = node;
    }

    public Node getNext() {
        return next;
    }

    public T getElement() {
        return element;
    }
}

/*
 * 索引异常类
 */
class IndexException extends Exception {
    public IndexException() {

    }

    public IndexException(String s) {
        super(s);
    }
}

 

以上是关于Java栈的简单实现的主要内容,如果未能解决你的问题,请参考以下文章

栈的实现原理

数据结构(Java语言)——Stack简单实现

java数据结构-栈的底层实现:数组实现压入,弹出,判断空栈测试代码

七 栈的java实现

栈的简单实现-数组实现

java大对象存取的简单实现的代码