blsn.net
当前位置:首页 >> C++ 数据结构 判断一个字符串中括号是否匹配 >>

C++ 数据结构 判断一个字符串中括号是否匹配

思路是遇到左括号就入栈,碰到右括号就判断栈顶的元素是否匹配的左括号,不是的话就返回false,是的话就弹出栈顶元素,然后继续下一个字符。判断函数如下: bool is_comm_stack(char const* src) { assert(src); char ch; char const* p=src; st...

#include "seqstack1.h" #include "stdio.h" void BracketMatch(char *str); void BracketMatch(char *str) /* str[]中为输入的字符串,利用堆栈技术来检查该字符串中的括号是否匹配*/ { SeqStack S; int i; char ch; InitStack(&S); for(i=0; s...

直接使用栈就可以了。左括号入栈,遇到右括号取栈顶元素,看是否同类匹配(都为【】或都为()),匹配则出栈,继续扫描后面的表达式,若不匹配则表达式非法。 我编写的代码如下: #include #include using namespace std; void main() { int i,...

C++的具体语法忘得差不多了。给你个思路好了。希望对你有所帮助。 1.准备一个 栈。 2.逐字符扫描输入的字符串。 2.1 如果是{或[或( 则压入 栈。 2.2 如果是}则检测 栈顶是否是{。如果是,则把栈顶的{弹出,继续检测输入字符串的下一个字符,如果...

#include #include using namespace std;bool isoperator(char op); // 判断是否为运算符int priority(char op); // 求运算符优先级void postfix(char pre[] , char post[],int &n); // 把中缀表达式转换为后缀表达式double read_number(char st...

直接说问题吧, 第一个case(case'['||'(':),逻辑错误。case的格式是case+表达式。使用过程中,要将表达式的值与switch中的表达式 相比较。你的程序中,switch带的表达式是一个字符,而你第一个case后面的表达式是什么呢?是一个逻辑表达式。...

其实这个问题已经不属于”括号匹配算法“了。括号是匹配的。 大二的时候做数据结构小作业也做了这个。我当时采用的就是自己规定规则。比方说/后面不能是0,运算符后面不能紧接着运算符,”(“后面不能紧接着”)“等等。也就是说我先做了算式合法性的...

这个问题本身有歧义,比如第一条: 如果输入的右括号多余,输出:Extra right brackets ——是指右括号的总数多余左括号的总数呢,还是指只要出现多余的右括号?比如 ][[ 是算左多余还是右多余?

这个应该是没错的啊,难道你是觉得j初值应该等于1?带头结点的单链表啊,指针每移动一次,长度+1,然后返回这个长度值埃

1、所有数据在计算机中,存放的均是二进制串,只有不同类型的数据在读写时按照读写的方式不同; 2、c++中的string类型是类对象,字符串是 char类型的数组,char则是更基本的类型。如果不懂类对象与char数组的区别的话,可以取了解一下c++的类。...

网站首页 | 网站地图
All rights reserved Powered by www.blsn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com