中缀表达式转化成后缀表达式的计算(7)
时间:2025-04-30
时间:2025-04-30
中缀表达式的直接计算,中缀表达式转化成后缀表达式的计算
op.level = 2; //给操作符赋值优先级 int level_2 = 2; //存放优先级别,用于比较优先级 while(ops.size != 0) //若字符栈不为空,则进行字符的优先级比较 { int level_1 = Op_getTop(&ops).level; //两个字符比较优先级,若新的字符优先级比栈中的字符优先级高,则 //从字符栈中字符出栈,将出栈的字符放到后续数组中
}
if(ops.size == 0) //若字符栈是空栈,则直接进行入栈的操作
{
}
index++;
continue; Op_push(&ops,op); if(Compare_opeate(level_1,level_2) == 0) { } else { } Op_push(&ops,op); break; char op1 = Op_pop(&ops).ch; tempCh[i++] = op1; tempCh[i++] = '|';
}
//判断是否为乘法或者除法的运算符 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 char op1 = Op_pop(&ops).ch; tempCh[i++] = op1; tempCh[i++] = '|';
下一篇:O型圈技术手册