Где почитать про Двоичное дерево?
От: Аноним  
Дата: 05.06.10 16:17
Оценка:
Нужно написать разбор выражения(к примеру 1*(2+3)). По "слухам" вышел на то, что нужно написать решать эту задачу через "двоичное дерево". Подскажите где про него можно почитать поподробнее?
ps: Решение нужно написать на C#.Net
Re: Где почитать про Двоичное дерево?
От: Ka3a4oK  
Дата: 05.06.10 18:11
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Нужно написать разбор выражения(к примеру 1*(2+3)). По "слухам" вышел на то, что нужно написать решать эту задачу через "двоичное дерево". Подскажите где про него можно почитать поподробнее?

А>ps: Решение нужно написать на C#.Net

Абстрактное синтаксическое дерево
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Re: Где почитать про Двоичное дерево?
От: sharcUs Беларусь http://sharcus.blogspot.com/
Дата: 05.06.10 19:45
Оценка:
Здравствуйте, Аноним, Вы писали:

в .NET начиная с 3.5 есть пространство имен System.Linq.Expressions, которое предоставляет функции API для создания деревьев выражений. Не уверен ваш ли это случай, но в любом случае полезно будет почитать.

Общая информация
Деревья выражений

Более конкретный пример
Практическое руководство. Реализация обхода дерева выражения

В этой реализации обхода дерева выражения метод Visit, который должен быть вызван первым, направляет переданное выражение в один или несколько специализированных методов обхода в классе, основываясь на типе выражения. Специализированные методы обхода служат для обхода поддерева выражения, которому они были переданы. Если вложенное выражение меняется после обхода, например посредством переопределения метода в производном классе, специализированные методы обхода создают новое выражение, которое включает изменения в поддереве. В противном случае они возвращают выражения, которое было им передано. Это рекурсивное поведение позволяет построить новое дерево выражения, которое является той же или измененной версией исходного выражения, переданного в Visit.

Re: Где почитать про Двоичное дерево?
От: Mr.Cat  
Дата: 06.06.10 11:36
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Нужно написать разбор выражения(к примеру 1*(2+3)). По "слухам" вышел на то, что нужно написать решать эту задачу через "двоичное дерево". Подскажите где про него можно почитать поподробнее?
Поподробнее — у Ахо и Ульмана.
Побыстрее — там же (в самом начале есть пример того, что тебе надо, на C).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.