Ruby: Wie kann ich eine Klasse Tree schreiben?

1 Antwort

1) Überlege dir doch erst einmal, wie ein Baum überhaupt aussieht. Wenn dir das gegebene Format noch nicht weiterhilft, zeichne es einmal auf:

           node
    node           node
node    node   node    node

Du siehst, dass jeder Knoten im Baum Kinder haben kann. Außerdem wird bei dir in jedem Knoten ein Wert gespeichert, damit der Knoten später wieder gefunden werden kann.

Das bedeutet, alles was du brauchst, ist eine Klasse Node, die 2 Attribute in sich hält: ChildNodes und Key (oder Value).

Um nun die geforderte Methode visit_all zu erfüllen, reicht es, beginnend von einem gegebenen Startknoten, rekursiv durch alle Knoten zu laufen.

In Pseudocode:

visit_all (node)
  call visit method of node
  iterate over all children of node
    call visit_all method of current child

Bezüglich der Ausgabe in Code-Blöcken musst du noch ein paar Ergänzungen (Ausgaben) hinzufügen, doch ich denke, dass du das allein hinbekommst. Die visit-Methode sollte auch nicht allzu schwierig sein, sie soll ja lediglich den Wert eines Knotens formatiert zurückgeben.

Was möchtest Du wissen?