中缀表达式转化成后缀表达式的计算(14)
时间:2025-04-30
时间:2025-04-30
中缀表达式的直接计算,中缀表达式转化成后缀表达式的计算
} } if(ops.size == 0) //若字符栈是空栈,则直接进行入栈的操作 { } index++; continue; Op_push(&ops,op); } else { } Op_push(&ops,op); break; double num_1 = Td_pop(&tds).d; double num = Cal(num_1,num_2,op1); td.d = num; Td_push(&tds,td);
//判断是否为乘法或者除法的运算符 if(chr == '*' || chr == '/') {
op.ch = chr; //存放操作符到操作符节点 op.level = 3; //给操作符赋值优先级 int level_2 = 3; //存放优先级别,用于比较优先级 while(ops.size != 0) { int level_1 = Op_getTop(&ops).level;
//两个字符比较优先级,若新的字符优先级比栈中的字符优先级高,则 //从字符栈中字符出栈,同时从数栈中出栈两个数,进行计算,计算结 //果存入数栈,否则将新的字符入栈 if(Compare_opeate(level_1,level_2) == 0) { } else { Op_push(&ops,op); break; char op1 = Op_pop(&ops).ch; double num_2 = Td_pop(&tds).d; double num_1 = Td_pop(&tds).d; double num = Cal(num_1,num_2,op1); td.d = num; Td_push(&tds,td);
下一篇:O型圈技术手册