something like this (* (+ 1 2 3) 5)
Оператор типа *, + может иметь более двух операндов.Как построить двоичное дерево выражений из префикса?
ответ
Чтобы сделать префиксную нотацию с неограниченным количеством операндов, вы должны определить некоторые дополнительные правила для скобок открытия/закрытия (и это не то, что префиксная нотация вообще).
Простой синтаксический анализатор принимает операцию, первый операнд и добавляет другие операнды один за другим. На каждом шаге просто создайте новый операционный узел, левый операнд примет предыдущий (текущий) результат, правый операнд возьмет новый извлеченный операнд.
Продолжайте движение до конца входного или закрывающего кронштейна. Не удаляйте закрывающий кронштейн со входа - его следует обрабатывать в части разбора open-close, а не в синтаксическом анализе.
Принимая операнд прост:
- "(" -> идти глубже и разобрать подвыражению до ")".
- Различные операции -> перейти глубже и разбор выражения под.
- Одну и ту же операционную камеру можно просто игнорировать, но это зависит от вас.
- Константа (или переменная, если у вас есть) -> сделать подвыражение операнда.
thank u Alexander – Gunasekar
- 1. Как построить двоичное дерево из заданного интерфейса
- 2. Как построить двоичное дерево из почтового заказа
- 3. Создать двоичное дерево выражений из префиксного обозначения?
- 4. Дерево выражений Двоичное выражение для операции «В»
- 5. Как построить двоичное дерево поиска снизу вверх
- 6. Как построить параллельное двоичное дерево в MPI?
- 7. Как построить двоичное дерево в Python
- 8. Как построить двоичное дерево, зная только узлы?
- 9. Двоичное дерево/двоичное дерево поиска
- 10. Построить двоичное дерево рекурсивно в cuda
- 11. Как построить неупорядоченное двоичное дерево из текстового файла
- 12. Как построить дерево разбора простых выражений
- 13. Двоичное дерево в двоичное дерево поиска (BST)
- 14. Двоичное дерево поиска поиска
- 15. Построить полное двоичное дерево из списка обхода предварительного порядка Python
- 16. Построить дерево (не двоичное) из предварительного и последующего обхода
- 17. построить двоичное дерево поиска из постоперационного обхода в Java
- 18. Как построить дерево или дерево?
- 19. Как сериализовать двоичное дерево
- 20. Как построить двоичное дерево в O (N) времени?
- 21. PHP Двоичное дерево, Как Traverse
- 22. Как восстановить двоичное дерево из кодировки пути?
- 23. Как удалить двоичное дерево
- 24. Как представлять двоичное дерево?
- 25. Как реализовать двоичное дерево?
- 26. Как создать двоичное дерево
- 27. Как построить двоичное дерево от листьев до корня
- 28. Построить дерево выражений с привязанными свойствами?
- 29. Двоичное дерево из общего дерева
- 30. Как создать двоичное дерево (не двоичное дерево поиска)
Возможно, какой-то поиск? если только был инструмент для поиска в Интернете .... –
Если вы еще этого не сделали, пожалуйста, найдите время [страницы справки] (http://stackoverflow.com/help), особенно разделы [«Какие темы можно задать здесь?»] (http://stackoverflow.com/help/on-topic) и [«Какие типы вопросов я должен избегать?»] (http://stackoverflow.com/помощь/DonT-аск). Также, пожалуйста, [возьмите тур] (http://stackoverflow.com/tour) и [читайте о том, как задавать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask). Наконец, узнайте, как создать [Минимальный, Полный и Подтверждаемый пример] (http://stackoverflow.com/help/mcve). –