Die Umwandlung eines infix-Ausdrucks (mit den Klammern) in einem binären Baum

Als Teil einer Java-Zuordnung, ich habe eine Eingabe arithmetischer Ausdruck und speichern Sie Sie in einem binären Baum.

Ich habe alles getan, was notwendig für die Zuordnung außer für den Teil, wo ich das gelesen habe in der Zeichenfolge des Ausdrucks, und speichern Sie es in den binären Baum.

Habe ich eine Klasse " BinaryTree. Seine einzige Feld ist ein treenode-Objekt mit dem Namen root. Das treenode-Objekt ist definiert als eine innerclass in BinaryTree. Es hat 3 Felder, ein generisches Daten-Feld, und zwei Kinder (Links und rechts), die Typ BinaryTree.

Ich habe eine sehr schwierige Zeit definiert einen Algorithmus für das Lesen in einem Ausdruck wie

(5*(2+3)^3)/2

und speichern es in einem Baum wie diese

             /
        ^          2
    *       3
  5   +
     2  3

Kann jemand helfen mit dem Algorithmus?

  • Versuchen Sie eine einfache Gleichung string first: 1+2. Wenn du das nicht: 1+2*3. Noch komplexer: 1*2+3. Schließlich: (1+2)*3
  • Wollen Sie eine Erklärung für den algo?
Schreibe einen Kommentar