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