1.特点:先进后出
2.操作:入栈:push(),出栈:pop()。大小:size()
注意点:初始时top=-1,入栈:++top,出栈:top--
3.应用
(1)分隔符匹配问题
利用栈判断分隔符是否匹配

1 public static void testMatch() {
2 LinkedList stack=new LinkedList<>();
3 String str = "12<a[b{c}]>]";
4 char[] chs=str.toCharArray();
5 for(char c : chs) {
6 switch (c) {
7 case '<':
8 case '[':
9 case '{':
10 stack.push(c);
11 break;
12 case '}':
13 case ']':
14 case '>':
15 if(!stack.isEmpty()) {
16 char ch=stack.pop().toString().toCharArray()[0];
17 if(c=='}' && ch!='{' || c==']'&&ch!='[' || c=='<'&&ch!='>')
18 System.out.println("not Match"+ch+"-"+c);
19 }
20 break;
21
22 default:
23 break;
24 }
25 }
26 }
433

被折叠的 条评论
为什么被折叠?



