从头到尾读取中缀表达式的每个对象,对不同对象按不同的情况处理。
① 运算数: 直接输出;
② 左括号: 压入堆栈;
③ 右括号: 将栈顶的运算符弹出并输出, 直到遇到左括号(出栈,不输出);
④ 运算符:
• 若优先级大于栈顶运算符时,则把它压栈;
• 若优先级小于等于栈顶运算符时,将栈顶运算符弹出并输出;再比较新的栈顶运算符,直到该运算符大于栈顶运算符优先级为止,然后将该运算符压栈;
⑤ 若各对象处理完毕,则把堆栈中存留的运算符一并输出。
从头到尾读取中缀表达式的每个对象,对不同对象按不同的情况处理。
① 运算数: 直接输出;
② 左括号: 压入堆栈;
③ 右括号: 将栈顶的运算符弹出并输出, 直到遇到左括号(出栈,不输出);
④ 运算符:
• 若优先级大于栈顶运算符时,则把它压栈;
• 若优先级小于等于栈顶运算符时,将栈顶运算符弹出并输出;再比较新的栈顶运算符,直到该运算符大于栈顶运算符优先级为止,然后将该运算符压栈;
⑤ 若各对象处理完毕,则把堆栈中存留的运算符一并输出。
本文标题:中缀表达式 -> 后缀表达式
本文链接:https://www.haomeiwen.com/subject/zmjakxtx.html
网友评论