Я нашел так много алгоритмов в google, но я не могу найти runnable алгоритм, который конвертирует infix в postfix. Как преобразовать уравнение инфикса в постфиксное уравнение на C#? Пожалуйста, помогите ...Как преобразовать уравнение инфикса в постфиксное уравнение на C#?
ответ
Это отличный небольшой проект для обучения программированию. Есть две части: проанализируйте код в дереве, затем напечатайте дерево как постфикс. Каждый узел дерева является оператором с двумя детьми: 4 + (5/6)
имеет +
в качестве корневого узла, а для детей 4 и 5/6. Когда вы смотрите глубже на узел 5/6
, вы найдете родителя с двумя детьми: родительский /
, а дети - 5
и 6
.
Разбор является самой сложной частью. Чтобы разобрать выражение, посмотрите на то, что вам нужно проанализировать, найти оператора и отметить, что осталось от оператора и что находится справа. Оператором является узел, и у него двое детей: Parse(stuff to the left)
и Parse(stuff to the right)
. Вам нужно обратить особое внимание на минус (который является унарным оператором и поэтому не строго инфикс). Я предлагаю обрабатывать минус как частный случай: -4
следует разобрать как -4
, а не минус узел с одним ребенком 4
. При анализе уравнения все внутренние узлы должны быть операторами, а все листовые узлы будут числами.
После того, как вы разобрали его, просто распечатайте. Для корневого узла print(node)
напечатает «(« левый ребенок »(напечатайте его рекурсивно), правый ребенок (напечатайте его рекурсивно), оператор, затем закройте выражение (узел)«) ».
У меня нет ссылки на алгоритм, но вы действительно будете расти намного больше, если будете реализовывать его самостоятельно.
- 1. Решите уравнение в C++
- 2. Переписать уравнение в c
- 3. Как преобразовать математическое уравнение (суммирование) в код?
- 4. Уравнение Solver в C#
- 5. Квадратичное уравнение в C
- 6. лямбда-уравнение в C++
- 7. Как преобразовать слово Уравнение в изображение?
- 8. Как преобразовать уравнение excel в javascript
- 9. Как мне преобразовать математическое уравнение в php?
- 10. Как распечатать ответ на уравнение в C?
- 11. Как преобразовать уравнение строки в число?
- 12. Как преобразовать уравнение из long в Biginteger
- 13. Преобразовать уравнение Строка для Int
- 14. C++: уравнение коэффициента Лоренца
- 15. C дифференциальное уравнение
- 16. Уравнение Parsing Library C++
- 17. как разбить строку на уравнение
- 18. Квадратичное уравнение C++
- 19. Как преобразовать функцию C# в математическое уравнение для написания тезиса
- 20. R фитинга уравнение (уравнение Никольского-Эйзенман) данным
- 21. Решите квадратичное уравнение в C++
- 22. Преобразуя уравнение
- 23. Преобразовать уравнение мне быстрее в java
- 24. Преобразовать уравнение из строки в PostgreSQL
- 25. Представить файл как уравнение?
- 26. Вывести уравнение в tkinter
- 27. Уравнение ускорения
- 28. Как преобразовать уравнение с декрементирующей индексацией в математическое уравнение с суммированием?
- 29. Строка разделения уравнение
- 30. Как написать уравнение в Objective-C?
Взгляните на это сообщение http://stackoverflow.com/questions/1438030/infix-to-postfix-converter или этот http://www.codeproject.com/Tips/370486/Converting-InFix-to -PostFix-используя-CSharp-VB-NET – Mulflar