补上第4种实现栈的方法,LinkedList实现:
package com.matt.stack;
import java.util.*;
public class MyStack<AnyType> {
private LinkedList<AnyType> list = new LinkedList<AnyType>();
private int top;
public MyStack() {
clear();
}
public void clear() {
top = -1;
list.clear();
}
public AnyType push(AnyType value){
list.add(value);
top++;
return value;
}
public AnyType pop(){
if(top<0) throw new NoSuchElementException();
AnyType last = list.getLast();
list.remove(top);
top --;
return last;
}
public AnyType peek(){
return list.getLast();
}
public String toString(){
String toStr = "[";
for(int i=0;i<=top;i++){
if(i==top) toStr += list.get(i) + "]";
else toStr += list.get(i) + ",";
}
return toStr;
}
/**
* @param args
*/
public static void main(String[] args) {
MyStack<Integer> stack = new MyStack<Integer>();
//stack.peek();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack);
stack.pop();
stack.pop();
stack.pop();
System.out.println(stack);
}
}