Datei auslesen und binären Baum füllen



  • Hallo

    in meiner Dateien stehen boolsche Funktionsgleichungen, die so aussehen können:

    A_1 =  NOT A_1
    				; 1 
    A_2 = A_1 &  NOT A_2 OR
    		 NOT A_1 & A_2
    				; 2 
    A_3 =  NOT A_2 & A_3 OR
    		A_1 & A_2 &  NOT A_3 OR
    		 NOT A_1 & A_3
    				; 3 
    ...
    

    Daraus soll ich, Gott weis wie, binäre Bäume erstellen. Also für jede Gleichung einen binären Baum. Es können aber auch jetzt nicht nur 3 sondern 33 Gleichungen vorhanden sein. Das ist ziemlich unterschiedlich, muss ich jedoch berücksichtigen.
    Eine Gleichung wird immer jeweils mit einem Semikolon abgeschlossen.
    Dahinter die Zahl ist belanglos.
    Der Variable vor dem "=" soll dann immer den Namen des Baumes bilden und alles hinter dem "=" sollen Wurzel und Knoten sein.
    Weis jemand wie ich da rangehen sollte, ich bin am verzweifeln...



  • Hallo,

    beschäftige Dich mal mit den Themen Parser- und Compilerbau. Was Du brauchst ist ein einfacher Parser, der Boolesche Ausdrücke zerlegt. Das ist nicht schwer – wenn man die Theorie dahinter versteht; ansonsten ist es ziemlich aufwendig. Daher mein Tip: Lern erst die Theorie und versuch dann die Praxis. In diesem Sinn passt Deine Signatur ganz gut.



  • Hallo !

    Tja, entweder du findest eine fertige Funktion/Klasse, die das für dich erledigt, oder aber du muss selber ran.

    RunSeb schrieb:

    ...
    Eine Gleichung wird immer jeweils mit einem Semikolon abgeschlossen.
    ...

    Hier weißt du ja schonmal wie du die einzelnen Gleichungen in der Datei erkennen kannst.

    RunSeb schrieb:

    ...
    Der Variable vor dem "=" soll dann immer den Namen des Baumes bilden und alles hinter dem "=" sollen Wurzel und Knoten sein.
    ...

    Hier siehst du, das man auch durchaus die einzelnen Bäume vor lauter Wald erkennen kann.

    RunSeb schrieb:

    ...
    Weis jemand wie ich da rangehen sollte...
    ...

    Sich schlau machen, wie man eine Datei öffnet und nach Zeichen/Buchstaben sucht wäre ein Anfang.

    RunSeb schrieb:

    ... ich bin am verzweifeln...
    ...

    Das ist es doch nicht wirklich Wert oder ?

    Gruß, p.



  • Hallo RunSeb,

    Vom einlesen her, sollte es eigentlich klar sein. Lesen bis zum Semikolon, und das dahinterstehende bis zum nächsten newline überlesen...

    Zum Generieren der Bäume.
    Zu erst mal würde ich mir den Ausdruck in Postfixform wandeln...
    siehe dazu:
    http://www.tilman.de/uni/ws03/alp/infixpostfix.php

    Aus diesem kannst du dann leicht einen Baum aufbauen... Wie du auf der Seite ebenfalls sehen kannst...

    Gruß


Anmelden zum Antworten