C Programmieren des Ausdrucksbaums zum Postfix zur Lösung unter Verwendung von Zeilen, die aus einer Datei gelesen werden

c expression-trees infix-notation postfix-notation

Frage

Ich bin furchtbar neu in der C-Programmierung. Ich bin auf ein paar Antworten gestoßen. Einige verwenden die alte Syntax.

Das Problem ist, dass ich ein Programm erstellen muss, das eine Textdatei liest und die gelesenen Postfixzeilen verwendet, um in eine Infix-Gleichung zu konvertieren.

Die Textdatei wäre etwa so:

6            #this is the number ofcontainters
1 + 3 4      # it's no_operation_if op!=v then read value of nos mention
2 + 5 6 
3 v 2.1 
4 v 2.4
5 v 3.5 
6 v 1.5

Die C-Datei wird im Ubuntu-Terminal gelesen, wo die Textdatei die einzige Eingabe ist und die Ausgabe das Infix-Formular ist.

Ein paar Vorschläge, wie ich dies mit Hilfe von Struct, Arrays und Unionen erreichen kann. Uns wurde bereits ein Format zum Erstellen von Struct Opnode, Vnode und deren Vereinigung gegeben. Der Array-Teil Ich bin ratlos, wie man vom Lesen zum Array selbst überträgt. C ist so seltsam verglichen mit Java ab diesem Moment.

[BEARBEITEN]

Sorry, ich habe vergessen zu erwähnen, dass dies Hausaufgaben sind ... nicht mehr Postfix zu Infix. Es ist Postfix, um die Gleichung zu lösen.

Ohne vorherige Kenntnisse der Syntax und der objektorientierten Programmierung kann ich nicht bearbeiten.

6            #this is the number ofcontainters
1 + 3 4      # it's no_operation_if op!=v then read value of nos mention
2 + 5 6 
3 v 2.1 
4 v 2.4
5 v 3.5 
6 v 1.5

/ * Dies liest Textdatei String-Eingabe in Terminal * Dann befiehlt die Textdatei gelesen werden * etc. * und alles andere tatsächlich * /

6            #this is the number ofcontainters
1 + 3 4      # it's no_operation_if op!=v then read value of nos mention
2 + 5 6 
3 v 2.1 
4 v 2.4
5 v 3.5 
6 v 1.5

Beliebte Antwort

Ich denke, der grundlegende Algorithmus sollte sein:

  • Lesen Sie die Anzahl für die Anzahl der Zeilen (nicht sicher, warum dies notwendig ist, wäre es einfacher, nur so lange zu lesen, wie Indata zur Verfügung gestellt werden, aber was auch immer)
  • Für jede erwartete Zeile:
    • Parsen Sie die erwarteten vier Sub-Strings aus
    • Ignoriere die erste, die eine sinnlose Wäscheleine zu sein scheint
    • Drucken Sie die Teilzeichenfolgen in einer gemischten Reihenfolge aus, um das "Infix" -Look zu erstellen
  • Getan werden

Ich verstehe den Teil über den "V" -Operator nicht, vielleicht sollten Sie diesen Teil klären.

Das scheint ein wenig zu viel wie Hausaufgaben für uns zu sein, nur um blind Code zu schreiben ... Sie müssen zuerst Ihren eigenen Versuch zeigen, zumindest.




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum