- 3
- 0
- 约3.53千字
- 约 7页
- 2017-07-08 发布于湖北
- 举报
一、设计思想
中缀转化为后缀算法过程中要使用一个栈和两个数组,(栈用来存放运算符,一个数组用来存放中缀表达式,两一个则是存放后缀表达式)表达式的转换过程如下:
(1)、将表达式开始符压入运算符栈,作为栈底元素。从左到右次扫描中缀表达式的每一个字符如果遇到的是开括号“(”,则将它们压入一个操作符栈(不需要与栈顶操作符相比较),它表明一个新的计算层次的开始,在遇到和它匹配的闭括号“)”时,将栈中的元素弹出来并放入后缀表达式中,直到栈顶元素为“(”时,将栈顶元素“(”弹出(不需要加入后缀表达式),表明这一层括号内的操作处理完毕将表达式开始符压入运算符栈,作为栈底元素。从到扫描中缀表达式的每一个字符如果遇到的是开括号“”,则将它们(不需要与栈顶操作符相比较),它表明一个新的计算层次的开始,在遇到和它匹配的闭括号“”时,将栈中的元素弹出来并放入缀表达式中,直到栈顶元素为“”时,将栈顶元素“”弹出(不需要加入后缀表达式),表明这一层括号内的操作处理完毕
图1 xxxx算法流程图
三、源代码
下面是中缀转换前缀表达式
int f(char c) //判断运算符级别函数;
{
int f=-1;
switch(c)
{
case+:
case-:f=1;break;
case*:
case/:f=2;break;
default:f=0;break;
}
原创力文档

文档评论(0)