java栈实现括号匹配
来源:互联网 发布:iscroll.js 下载 编辑:程序博客网 时间:2024/06/06 19:01
算法思想:
做一个空栈,读入字符。
若字符是左运算符,则入栈
若字符时右运算符,当栈为空时报错
否则,将栈顶元素弹出,若不匹配,则报错
最后,字符读完后,栈非空,则报错
代码:
Stack类
- package cn.edu.tju.stack;
- public class Stack {
- public static void push(char[] arr, int topOfStack, char x){
- arr[topOfStack] = x;
- }
- public static char pop(char[] arr, int topOfStack){
- char x = arr[topOfStack];
- return x;
- }
- }
客户端Client类
- package cn.edu.tju.stack;
- public class Client {
- public static void main(String[] args){
- char[] input = {'[', '(', ')', ']', '{', '(', '}', ')'};
- char[] stack = new char[input.length];
- int topOfStack = -1;
- boolean result = true;
- for(int i = 0; i < input.length; i ++){
- switch(input[i]){
- case '[':
- case '{':
- case '(':
- Stack.push(stack, ++topOfStack, input[i]);
- break;
- default:
- if(topOfStack == -1){
- result = false;
- break;
- }else{
- char top = Stack.pop(stack, topOfStack--);
- //if(input[i] != top){
- if((input[i] == ')' && top != '(') || (input[i] == ']' && top != '[') || (input[i] == '}' && top != '{')){
- result = false;
- }
- break;
- }
- }
- }
- if(topOfStack > -1){
- System.out.println("false");
- }else if(result){
- System.out.println("true");
- }else if(!result){
- System.out.println("false");
- }
- }
- }
0 0
- java栈实现括号匹配
- java实现括号匹配
- Java实现括号匹配
- java实现括号匹配
- 括号匹配Java实现
- 使用栈实现括号匹配算法-java
- java版 利用栈实现括号匹配
- java利用栈实现括号()[]匹配问题
- 栈实现括号匹配
- 栈实现括号匹配
- 栈实现括号匹配
- 栈实现括号匹配
- 括号匹配---栈实现
- 栈实现括号匹配
- 栈实现括号匹配
- 括号匹配,栈实现
- 栈实现括号匹配
- 括号是否匹配 java实现
- 高性能web站点--负载均衡
- 关于C++的感想
- 黑马程序猿——C#枚举器深入解析
- 音频单元托管基础草稿
- 从上层APP到底层驱动的调用过程
- java栈实现括号匹配
- Modbus通讯协议学习
- 第一个aauto程序
- EOF是什么?
- 修改与添加Administrator的方法?
- 链表排序的两种实现方法
- VRPN学习笔记(二) 配置server和编写client
- TRIZ系列-创新原理-2-抽取原理
- 从ClassPathXmlApplicationContext中看spring在web中如何运行