gpt4 book ai didi

c++ - 在堆栈实现中的推操作中传递值时出错(括号匹配)

转载 作者:行者123 更新时间:2023-12-03 08:39:14 34 4
gpt4 key购买 nike

#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;
}
}
pop 功能
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]));应该可以解决您的问题!

关于c++ - 在堆栈实现中的推操作中传递值时出错(括号匹配),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63549889/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com