作者在 2010-04-17 23:14:49 发布以下内容
中缀转化为后缀算法:
a. 得到一操作符或操作数;
b. 若输入为操作数,则输出到数组SNode,转a;
c. 若输入为‘(’,压栈,转a;
d. 若输入为‘)’,栈顶出栈,输出到数组,直至栈顶为‘(’,不输出到数组(抛弃),转a;
e. 若输入为操作符,
若栈空或栈顶为‘(’或操作符忧先级大于栈顶操作符,压栈,转a
若操作符优先级小于栈顶操作符,则出栈,输出至数组,转e;
d. 若输入结束,出栈,输出到数组,直至栈空。
数组SNode中即为后缀表达式;
优先级可以根据需要分为 栈内优先级和栈外优先级
a. 得到一操作符或操作数;
b. 若输入为操作数,则输出到数组SNode,转a;
c. 若输入为‘(’,压栈,转a;
d. 若输入为‘)’,栈顶出栈,输出到数组,直至栈顶为‘(’,不输出到数组(抛弃),转a;
e. 若输入为操作符,
若栈空或栈顶为‘(’或操作符忧先级大于栈顶操作符,压栈,转a
若操作符优先级小于栈顶操作符,则出栈,输出至数组,转e;
d. 若输入结束,出栈,输出到数组,直至栈空。
数组SNode中即为后缀表达式;
优先级可以根据需要分为 栈内优先级和栈外优先级