Build Binary Expression Tree

Könnte mir jemand erklären, wie man einen binären Ausdruck Baum.

Ich habe zum Beispiel einen string 2*(1+(2*1)); Wie zu konvertieren, das in einem binären Ausdruck Baum.

 *
 | \
 |  \
 2  +
    |\
    1 *
      |\
      2 1
Könnten Sie eine Lösung implementieren, mit der Rangier-yard-Algorithmus. Hier sind einige details auf wikipiedia: <en.wikipedia.org/wiki/Shunting-yard_algorithm>. Dieser algo erfunden wurde von Edsger Dijkstra, es ist eine sehr schöne alternative. Wenn Sie müssen einige details, kann ich nach einem code-Beispiel, das schrieb ich in C# vor einiger Zeit, aber ich nehme an, dass der wikipedia-link ist mehr als genug.

InformationsquelleAutor user1110839 | 2012-02-03

Schreibe einen Kommentar