[20-05-22][Thinking in Java 34]Java Container 6 - Stack

 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 

猜你喜欢

转载自www.cnblogs.com/mirai3usi9/p/12935534.html