java - 使用链表求解多项式方程

标签 java linked-list postfix-notation infix-notation

我正在尝试编写一个 Java 程序,该程序采用算术表达式,将其从 Infix 转换为 Postfix 并计算答案。但是,我需要借助链接列表将表达式表示为多项式,并对它们执行后缀求值。我已经完成了 Infix 到 Postfix 的转换,并且知道如何评估 Postfix。但我正在努力使用链接列表来表示多项式表达式。

例如,如果 Postfix 表达式为:40 50 -

我需要将40存储为4*10^1 + 0*10^1在链接列表中。它可以通过在链表中拥有 2 个节点(系数和指数)来完成。 50 也是同样的情况。

问题是,我不知道任何给定的表达式需要多少个链表。如果后缀表达式是 40 50 60 - + 那么我需要将所有 3 个数字存储在单独的列表中并将它们存储在堆栈中直到找到运算符。有人可以给我一些关于如何继续的建议吗?

最佳答案

您不需要将指数存储在链表中:指数可以通过数字的位置给出。例如,365 可以存储为列表 5->6->3,但每个列表节点存储单个数字的效率并不高。

您将需要与输入数字一样多的链表,并且在阅读表达式之前您不会知道有多少个链表,对吗?

关于java - 使用链表求解多项式方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19015718/

相关文章:

java - 抛出奇怪的 org.threeten.bp.DateTimeException?

java - 如果括号具有更高的优先级,那么为什么首先解决增量运算符?

c - 程序中的未知错误

java - 使用鼠标移动旋转 3D View - 使用固定相机

java - webLogic 上的性能包

c - 打印链表

c++ - 为什么我的 vector 不能访问嵌套结构中的变量?

c++ - 使用 C++ 的堆栈和 char 数组评估后缀表达式

c - 当 infix 或 postfix 遇到 "-"符号时,它似乎给了我随机值

java - 使用堆栈理解 Java 代码中的后缀表达式求值