前缀后缀算数运算编程.docVIP

  • 13
  • 0
  • 约4.76千字
  • 约 7页
  • 2016-11-28 发布于河南
  • 举报
前缀后缀算数运算编程

一、设计思想 中缀转化为后缀算法过程中要使用一个栈和两个数组,(栈用来存放运算符,一个数组用来存放中缀表达式,两一个则是存放后缀表达式)表达式的转换过程如下: (1)、将表达式开始符“#“压入运算符栈,作为栈底元素。 (2)、从左到右依次扫描中缀表达式的每一个字符。 (3)、如果遇到的是开括号“(”,则将它们压入一个操作符栈(不需要与栈顶操作符相比较),它表明一个新的计算层次的开始,在遇到和它匹配的闭括号“)”时,将栈中的元素弹出来并放入后缀表达式中,直到栈顶元素为“(”时,将栈顶元素“(”弹出(不需要加入后缀表达式),表明这一层括号内的操作处理完毕 (4)、即将进栈的操作符要与栈顶的操作符进行优先级比较,若当所遇到的操作符的优先级大于栈顶元素时,进栈,否则是将栈顶元素一次弹栈放入后缀数组,直到比较操作符小于或等于栈顶元素时为止。重复以上操作,最后将栈内所有操作符放进后缀数组内。 (5)、重复上述步骤直到缀表达式的结束符标记“#“,弹出栈中所有元素并放入后缀表达,转换结束。 中缀表达式为:17-3*4+(8/2)# 后缀表达式为:17 3 4 * - 8 2/+ 中缀转化为前缀算法过程中要使用三个数组,(一个栈数组,一个存放中缀表达式,一个存放前缀表达式)表达式的转换过程如下: (1)将表达式开始符“#“压入运算符栈数组,作为栈底元素。 (2)、从右到左依次扫描中缀表达式的每一个

文档评论(0)

1亿VIP精品文档

相关文档