我正在尝试编写一个 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/