用栈实现表达式计算.docxVIP

  • 18
  • 0
  • 约8.08千字
  • 约 19页
  • 2021-11-25 发布于辽宁
  • 举报
、设计思想 算法一: 利用栈将中缀表达式转化成后缀表达式再进行计算。 ( 1)构造 char 类型的栈函数以及栈的相关函数(出栈函数、 进栈函数、创建栈 函数、销毁栈函数、判断栈是否为空函数、看栈顶函数等) 。 ( 2)在 main 函数中让用户进行输入,将用户输入的字符串进行循环、 判断(如 果数字字符后面的是运算符,则在数字字符后加“ #”以便进行区分;否则, 继续循环。)并将判断后的字符串传递到新的数组中, 循环结束后, 再将数组 传递给中缀表达式转后缀表达式函数( Min_Back() )。 ( 3)中缀表达式转后缀表达式函数是利用运算符的优先级进行判断来将中缀表 达式转换成后缀表达式的函数。函数中利用构建的栈以及栈的相关函数对运 算符进行操作: 先看栈顶, 如果栈为空或栈顶元素为 ‘(或者栈顶元素为 ‘ + 或‘—并且现有运算符为‘ *、‘/ 或‘ %又或是现有运算符为‘ (,则 现有元素进栈;否则,再对现有元素进行判断:如果现有元素为‘) ,运算 符出栈直到 ‘( 出栈;否则,运算符出栈直到栈空或者栈顶元素的优先级低 于现有运算符,现有运算符才进栈。循环结束后,将栈中的运算符全部依次 输出,最后将后缀表达式传递给求值函数( countfor() ),再销毁栈。 ( 4)求值函数中首先是利用 strtod() 函数将数字字符串转换成 double 类型的 数字,然后构建一

文档评论(0)

1亿VIP精品文档

相关文档