C语言版数据结构怎样实现代数多项式的四则运算输入通过用户界面进行,输入时应输入完整的多项式

384489785@QQ.COM
2025-01-04 09:37:15
推荐回答(1个)
回答1:

思路上需要从公式中提取运算数和运算符,利用栈的结构,一个运算数栈,一个运算符栈,根据优先级表,当新来的运算符的优先级低于目前运算符栈栈顶的优先级时,则弹出栈顶运算符并取操作数进行运算,否则的话新来的运算符进栈。
需要考虑最后的时候只有一个运算符在栈中时,如何触发该运算符运算,可以在公式的最后加上一个特殊符号,如‘#’,并且规定‘#’的优先级最低,这样当‘#’入栈时,必须将栈中的运算符弹出,这样整个运算过程也就结束了。
最后运算数栈时空的,运算符栈只剩下一个特殊符号‘#’。
另外如果中间出现公式错误,比如公式中出现两个连续的运算符,这时候需进行出错处理。