判断括号是否匹配的递归与非递归实现
2013-09-16 00:22
309 查看
递归:
非递归:(可以包含多种括号)
int bracket(char *p, int count) { if (*p == '\0') return count; else if (*p == '(') return bracket(p + 1, count++); else if (count > 0 && *p == ')') return bracket(p + 1, count--); else if (count <= 0 && *p == ')') return -1; return bracket(p + 1, count); }
非递归:(可以包含多种括号)
bool match(char a,char b) { if(a=='('&&b==')') return true; if(a=='['&&b==']') return true; if(a=='{'&&b=='}') return true; return false; } bool Bice(char* s) { int i,n=strlen(s),top=-1; char *st=new char ; for(i=0;i<n;i++) { if(s[i]==')'||s[i]==']'||s[i]=='}') { if(top>=0&&match(st[top],s[i])) top--; else return false; } else if(s[i]=='('||s[i]=='['||s[i]=='{') st[++top]=s[i]; } if(top==-1) return true; return false; }
相关文章推荐
- 递归与非递归方式判断二叉树是否对称&& 按行打印二叉树【java实现】
- 判断表达式括号是否匹配,C语言堆栈实现
- 使用纯递归判断括号是否匹配
- 只用递归来判断括号是否匹配
- 如何判断一个字符串中的括号是否匹配
- 全部输入是小括号的字符串,判断是否匹配
- 判断两个二叉树是否相等(仅结构) -- 递归和非递归实现
- java实现用栈解决一个串中的括号是否匹配
- 括号是否匹配 java实现
- 判断花括号是否匹配
- Python实现的括号匹配判断功能示例
- 通过递归判断一个整形数组是否按升序排列(java实现)
- 判断代码中的括号是否匹配
- Q391判断是否为平衡二叉树(递归实现)
- 华为2014机考题目_判断if括号匹配是否合法_堆栈_简单的方法- -
- 输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。
- 用递归实现判断一个字符串是否是回文的方法
- 用递归实现判断一个字符串是否是回文的方法
- 数据结构算法——判断表达式中的括号是否匹配
- C++常考的上机题型:判断一个字符串是否为回文串(递归实现)