Решить полиномиальное уравнение с помощью связанного списка

Я пытаюсь написать программу на Java, которая принимает арифметическое выражение, преобразует его из Infix в Postfix и оценивает ответ. Однако мне нужно представить выражения как полиномы с помощью связанных списков и выполнить оценку Postfix для них. Я завершил преобразование Infix в Postfix и знаю, как оценить Postfix. Но я изо всех сил пытаюсь представить полиномиальное выражение, используя Linked List.

Например, если выражение Postfix: 40 50 -

Мне нужно хранить 40 как 4*10^1 + 0*10^1 в связанном списке. Это можно сделать, имея 2 узла, Коэффициент и Экспонент, в Связанном списке. То же самое для 50.

Проблема в том, что я не знаю, сколько связанных списков мне понадобится для любого выражения. Если выражение postfix равно 40 50 60 - +, тогда мне нужно хранить все 3 числа в отдельных списках и хранить их в стеке, пока я не найду оператора. Может ли кто-нибудь дать мне какие-либо предложения о том, как поступить?

1 ответ

Решение

Вам не нужно хранить показатель степени в связанном списке: показатель степени может быть задан положением цифры. Например, 365 можно сохранить как список 5->6->3хотя сохранение одной цифры на узел списка не так эффективно.

Вам понадобится столько связанных списков, сколько есть входных чисел, и вы не будете знать, сколько их будет, прежде чем читать выражение, не так ли?

Другие вопросы по тегам