c++primer 习题9.43
来源:互联网 发布:二维数组先定义 再赋值 编辑:程序博客网 时间:2024/04/30 18:33
void readStack(stack<char> c)
{
while(!c.empty())
{
cout<<c.top();
c.pop();
}
}
void main()
{
stack<char> cStack;
stack<char> cStack2;//此栈用来存储括号中的内容
int lcnt=0,rcnt=0;//用来表示左右括号数目是否相等
string exp="a+b*(c+(m+n))+x";
for(string::iterator iter=exp.begin();iter!=exp.end();iter++)
{
if(*iter=='(')
lcnt++;
if(*iter!=')')
{
cStack.push(*iter);
}
else if(*iter==')')
{
rcnt++;
cStack2.push(*iter);//将右括号压入新栈
while(cStack.top()!='(')//将到左括号之前的元素全部弹出栈并压入新栈
{
cStack2.push(cStack.top());
cStack.pop();
}
cStack2.push(cStack.top());//此时老栈里面的栈顶符号应为‘(’
cStack.pop();
cStack.push('#');//代替括号的标识符
}
}
if(lcnt==rcnt)
{
readStack(cStack);
cout<<"haha"<<endl;
readStack(cStack2);
}
else
cout<<"表达式中的左右括号数目不等";
}
- c++primer 习题9.43
- c++primer习题9.43
- c++primer 习题9.12
- c++primer 习题9.35
- c++primer 习题9.36
- c++primer 习题9.18
- c++primer 习题9.20
- c++primer 习题9.42
- c++primer 习题9.26
- C++Primer习题6.12
- C++primer习题6.20
- C++Primer习题9.26
- C++Primer 习题9.38
- C++Primer 习题9.39
- C++Primer习题9.40
- C++Primer习题10.9
- C++Primer习题6.12
- C++primer 习题6.22
- 美国顶级大学令人心痛的地狱式计算机教学
- denyhost:有效阻止ssh暴力破解
- 过滤分享的Chrome扩展开发详解
- Oracle10g安装时检查网络配置需求未通过问题的解决方法
- 用vc编写任务管理器杀不掉的进程
- c++primer 习题9.43
- ie6 ie7 的div 对 display:inline-block的解析
- geekos项目project1代码
- 传智播客-web service(1)-B/S、C/S与远程调用
- inline函数:避免代码膨胀
- VC项目清理助手
- 桐庐日本武道(合气剑简介及全部内容)
- 2月8日服务日志
- Ubuntu下PDF乱码的解决办法