文章
8
粉丝
0
获赞
27
访问
930
/*
我的代码写得有点啰嗦,但是很直观便于理解,就是王道数据结构里面的利用了一个栈char_stack保存运算符,一个栈int_stack保存数字的思想
这道题目有一个坑就是对于输入的字符串,比如2+10*9里面,如果按照字符串一个一个读取的话,还是要判断一下是否把两位数字10给都读完,然后再进行拼接
*/
#include
#include
#include
#include
using namespace std;
// 处理+/-:在没有括号干扰优先级的情况下,可以清空所有运算符栈
void pop_stack1(stack& char_stack, stack& int_stack, char& ch) {
while (!char_stack.empty()) {
char temp = char_stack.top();
char_stack.pop();
// 先弹右操作数,后弹左操作数
int rightnum = int_stack.top();
int_stack.pop();
int leftnum = int_stack.top();
int_stack.pop();
// 这是所有运算符的计算
if (temp == '+') int_stack.push(leftnum + rightnum);
...
登录后发布评论
暂无评论,来抢沙发