如何解决在堆栈实现中的推操作中传递值时出错括号匹配
#include <iostream>
#include<string>
using namespace std;
class Stack{
public:
int top;
int size;
string *s;
void isBalanced(Stack *st,string exp);
};
推送功能是
void push(Stack *st,string x){
if(st->top==st->size-1)
cout<<"Stack full\n";
else{
st->top++;
st->s[st->top]=x;
}
}
流行功能
string pop(Stack *st){
string x;
if(st->top==-1)
cout<<"Stack is empty\n";
else{
x=st->s[st->top--];
}
return x;
}
错误的功能
void Stack::isBalanced(Stack *st,string exp){
for(int i=0;exp[i]!='\0';i++){
if(exp[i]=='('){
push(st,exp[i]);
}else if(exp[i]==')'){
if(top==-1)
cout<<"stack empty\n";
pop(st);
}
}
if(top==-1)
cout<<"Balanced\n";
else
cout<<"Not balanced\n";
}
主要
int main()
{
Stack st;
string expression;
cout<<"ENTER EXPRESSION TO CHECK PARENTHESIS BALANCED OR NOT : ";
cin>>expression;
st.size=expression.length();
st.top=-1;
st.s=new string[st.size];
st.isBalanced(&st,expression);
}
在这里我试图实现在C ++中使用的括号匹配问题,但是在下面的代码行中,函数isBalanced中抛出错误 尝试 修理 我的问题
push(st,exp[i]);
此行抛出错误,无法隐藏某些内容...我无法修复它。我有所有可能的方式,无法纠正,所以...
解决方法
push(st,std::to_string(exp[i]));
应该可以解决您的问题!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。