LinkedList实现栈简单描述:

    提供一组栈的接口,其底层关联到一个LinkedList(双端队列)实例。由于只暴露部分基于栈实现的接口,所以可以提供安全的栈实现。

LinkedList实现栈代码:

package junit;
import java.util.LinkedList;
/**
 * 用LinkedList实现栈
 * 
 * 队列和栈区别:队列先进先出,栈先进后出。
 * 
 */
public class Stack<T> {
    private LinkedList<T> storage = new LinkedList<T>();
    /** 入栈 */
    public void push(T v) {
        storage.addFirst(v);
    }
    /** 出栈,但不删除 */
    public T peek() {
        return storage.getFirst();
    }
    /** 出栈,删除 */
    public T pop() {
        return storage.removeFirst();
    }
    /** 栈是否为空 */
    public boolean empty() {
        return storage.isEmpty();
    }
    /** 打印栈元素 */
    public String toString() {
        return storage.toString();
    }
    
    public static void main(String[] args) {
        Stack stack=new Stack<String>();
        stack.push("a");
        stack.push("b");
        stack.push("c");
        //[c, b, a]
        System.out.println(stack.toString());
        //c--[c, b, a]
        Object obj=stack.peek();
        System.out.println(obj+"--"+stack.toString());
        obj=stack.pop();
        //c--[b, a]
        System.out.println(obj+"--"+stack.toString());
        //false
        System.out.println(stack.empty());
    }
}