1 package test_18_4; 2 3 import java.util.LinkedList; 4 5 // 用LinkedList重新定义Stack类 6 public class Stack<T> { 7 8 private LinkedList<T> storage = new LinkedList<T>(); 9 10 public void push(T v) { 11 storage.addFirst(v); 12 } 13 14 public T peek() { 15 return storage.getFirst(); 16 } 17 18 public T pop() { 19 return storage.removeFirst(); 20 } 21 22 public boolean empty() { 23 return storage.isEmpty(); 24 } 25 26 public String toString() { 27 return storage.toString(); 28 } 29 }
1 package test_18_4; 2 3 public class StackTest { 4 5 public static void main(String[] args) { 6 7 String str = "st+U+n+c---+e+r+t---+a-+i-+n+t+y---+r+u--+l+e+s---"; 8 char[] chArr = str.toCharArray(); 9 10 Stack<String> stk = new Stack<String>(); 11 12 for (int i = 0; i < chArr.length; i++) { 13 if ('+' == chArr[i]) { 14 stk.push("" + chArr[i + 1]); 15 } else if ('-' == chArr[i]) { 16 System.out.print(stk.pop() + " "); 17 } 18 } 19 } 20 }
结果如下:
c n U t r e a i y t n u r s e l