Skip to content

katie312/DS-expression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

完成的功能:

1.加减乘除、取余、次幂计算

2.多位数运算

3.小数运算

4.解决第一个数为负数、-(xx)、--(xx)、+(-xx)等特殊情况判断

文件路径:

1

calculate:表达式处理

SqStack:顺序栈的建立

算法思路:表达式先存储在str数组中,然后依次进行单独数字转换成一个整体的数字、进数栈/符号栈、高优先级符号运算处理、再整体进行运算处理。

遍历栈遇到的情况有:

  • 遇到左括号直接入栈,遇到右括号将栈中左括号之后入栈的运算符全部弹栈输出,同时左括号出栈但是不输出。
  • 遇到乘号和除号直接入栈,直到遇到优先级比它更低的运算符,依次弹栈,计算再入栈。
  • 遇到加号和减号,如果此时栈空,则直接入栈,否则,将栈中优先级高的运算符依次弹栈,计算再入栈(注意:加号和减号属于同一个优先级,所以也依次弹栈)直到栈空或则遇到左括号为止,停止弹栈。(且要把左括号弹出)。
  • 获取完后,将栈中剩余的运算符号依次弹栈,计算,入栈,数栈最后得到的数字就是结果。

流程图:

2 1 drawio

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published