我正在尝试编写一个带有算术表达式的Java程序,将其从Infix转换为Postfix并评估答案。但是,我需要在链接列表的帮助下将表达式表示为多项式,并对它们执行Postfix评估。我已经完成了Infix到Postfix的转换,并且知道如何评估Postfix。但我正在努力用链表来表示多项式。
例如,如果Postfix表达式为: 40 50 -
我需要在链接列表中将 40 存储为 4 * 10 ^ 1 + 0 * 10 ^ 1 。可以通过在链接列表中具有2个节点Coefficient和Exponent来完成。 50岁的情况相同。
问题是,我不知道任何给定表达式需要多少链表。如果后缀表达式 40 50 60 - + ,那么我需要将所有3个数字存储在单独的列表中并将它们存储在堆栈中,直到找到运算符。任何人都可以给我任何关于如何进行的建议吗?
答案 0 :(得分:1)
您不需要将指数存储在链表中:指数可以由数字的位置给出。例如365可以存储为列表5->6->3
,但每个列表节点存储一个数字效率不高。
您需要与输入数字一样多的链接列表,在阅读表达式之前,您将不知道会有多少链接列表?