Java中栈的实现原理

来源:互联网 发布:配眼镜测得数据的意思 编辑:程序博客网 时间:2024/06/06 04:57

理解:
底层数组保存数据,一个栈顶指针指向栈顶元素。
入栈,top++指向该元素,
出栈,出top指向元素,top–指向下一个元素
先进后出。
常用方法:
入栈:push()
出栈:pop()
判断是否为空:isEmpty()
栈顶元素:peek();
Java自带:

Stack<T> stack = new Stack<T>();
class Stack<T>{    private int top;    private Object[] data;     public Stack(){        data = new Object[100];        top = -1;    }    //压栈 数据存入数组栈顶指针下标+1后对应的位置    //确保top总是指向栈顶位置    public synchronized void push(T t){        if(top >= 100){            System.out.println("栈满");            return;        }        data[++top] = t;    }    //出栈 从栈顶指针指向的元素开始出栈    //实现先进后出。    public synchronized T pop(){        if(top < 0){            System.out.println("空栈");            return null;        }        @SuppressWarnings("unchecked")        T t = (T) data[top--];        return t;    }    //获得栈顶元素    public T peek(){        return (T)data[top];    }    //获取栈的长度    public int getLength(){        return top < 0 ? 0:top+1;    }}
原创粉丝点击