好贷网好贷款

队列与栈_栈结构的应用

发布时间:2016-12-5 8:31:12 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"队列与栈_栈结构的应用",主要涉及到队列与栈_栈结构的应用方面的内容,对于队列与栈_栈结构的应用感兴趣的同学可以参考一下。

栈结构很有用处,有时通过它可以轻松化解一些难题。 看如下问题: ...(.[...)...]...(..(.)..)..{..}.[.]...[[...(.).]..]. 请判断一个串中的括号是否匹配 注意下列不匹配的情况: 左括号太多 右括号太多 右括号先于左括号出现 ..)...(... 挎臂情况 ....[...(....]....).... 考虑用栈 import java.util.ArrayDeque; import java.util.Deque; import java.util.Scanner; public class StackTest { public static void main(String[] args) { Deque<Character> stack = new ArrayDeque<Character>(); Scanner sc = new Scanner(System.in); System.out.println("请输入一行表达式:"); String str = sc.nextLine(); boolean flag = true; char ch; for(int i = 0; i < str.length(); i++) { ch = str.charAt(i); if(ch == '(' || ch == '[' || ch == '{') { stack.offerFirst(ch); } else if(ch == ')') { if(stack.peekFirst() != null && stack.peekFirst() == '(') { stack.pollFirst(); } else { flag = false; break; } } else if(ch == ']') { if(stack.peekFirst() != null && stack.peekFirst() == '[') { stack.pollFirst(); } else { flag = false; break; } } else if(ch == '}') { if(stack.peekFirst() != null && stack.peekFirst() == '{') { stack.pollFirst(); } else { flag = false; break; } } } if(flag) { flag = stack.isEmpty(); } System.out.println("是否匹配:" + flag); } }结果: Conclusion 请输入一行表达式: a+b[ddd](2014) 是否匹配:true 请输入一行表达式: {[123]}9[))] 是否匹配:false

上一篇:JavaScript’s call v apply v bind
下一篇:深度音乐安装百度音乐插件

相关文章

相关评论