Tree

Moderator: AI 2

Katja.
Neuling
Neuling
Beiträge: 2
Registriert: 17. Jan 2012 01:13

Tree

Beitrag von Katja. »

Ich habe noch eine etwas späte Frage zur Musterlösung für Tree:
Wie wird mit diesen Methoden der ganze Baum durchlaufen? Ich sehe hier nur, dass die Punkte links und rechts des und rechts des Knoten aufgerufen werden, nicht dass der ganze Baum traverisert wird.
/**
* Get the text-representation of the tree by recursive traversal.
*
* @return in-order representation of the tree
*/
//recursive
public String treeToString(Node i) {
String str = "";

if (i.getLeft() != null) str += treeToString(i.getLeft()); // left tree
str += (i.getName() + " ");
if (i.getRight() != null) str += treeToString(i.getRight()); // right tree

return str;
}
/**
* Prints the whole tree (in-order traversal)
*/
public void print(){
System.out.println(treeToString(root));
}
}

m_flaig
Moderator
Moderator
Beiträge: 272
Registriert: 27. Sep 2009 14:02

Re: Tree

Beitrag von m_flaig »

Guten Morgen!

Schauen Sie sich das Thema "Rekursion" noch einmal genau an.
Um das Thema zu verstehen hilft es enorm, den Code Zeile für Zeile durchzugehen und dabei die Werte für jede Variable aufzuschreiben. Dann sollten Sie Ihre Frage selbst klären können :-)
Der entscheidende Punkt kommt dann beim Aufruf von treeToString(i.getLeft()), bzw. treeToString(i.getRight())..

Bedenken Sie, dass als erstes die Methode print() aufgerufen wird!

Viele Grüße,
Maximilian Flaig

midstar
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 172
Registriert: 29. Dez 2013 17:00

Re: Tree

Beitrag von midstar »

Was mir gerade auffällt ist, ob Katja möglicherweise den Ausdruck += nicht kennt.

Was zb in dieser Zeile hier verwendet wird:

str += treeToString(i.getLeft());

Das ist die von m.flaig erwähnte Rekursion. Bei Integer wäre es zb ähnlich einem x += 2; <=> x = x+2;

Vlt hilft das ja :)


mfg jan

Antworten

Zurück zu „AI 2“