Twitter und Facebook-Anbindung
X
Tweet Follow @twitterapi
!!! Anbindung an twitter und facebook öffnen !!!

Wenn Ihnen mein Online-Buch gefällt,
dann bedanken Sie sich doch mit einer kleinen Spende...

10.3.1 Preorder

10.3.1 Preorder

Preorder heißt, es erfolgt erst die Ausgabe, dann das nach links Gehen und schließlich das nach rechts Gehen.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
					
// ...

// Erst Ausgabe, dann links, dann rechts //////////////////////////////////////
void PreorderPrint(PIntegerTreeItem pHelpItem) {
	// Rekursionsbedingung
	if (pHelpItem != NULL)  {
		printf("%i ", pHelpItem->iValue);
		
		// Selbstaufruf der Funktion (nach links gehen)
		PreorderPrint(pHelpItem->pLeftItem);
		// Selbstaufruf der Funktion (nach rechts gehen)
		PreorderPrint(pHelpItem->pRightItem);
	} // end of if
} // PreorderPrint ////////////////////////////////////////////////////////////

// ...

PreorderPrint(pRootItem);

// ...
					

Ausgabe:

100 50 25 75 150 125 175
		

Erklärung

Wird die Funktion aufgerufen, wird zunächst einmal der Zeiger übergeben, welcher auf das Wurzelelement verweist. Die Variable "pHelpItem" erhält nun diese Adresse/Referenz. Nun beginnt die Suche, es sei denn, der Baum ist leer. Als erstes wird der erste Wert ausgegeben, die "100". Jetzt ruft sich die Funktion erneut auf und übergibt den Zeiger, welcher auf den linken Baum zeigt. Die Variable "pHelpItem" zeigt nun auf das linke Tochterelement. Da hier noch nicht Schluss ist, wird die "50" ausgegeben und der Zeiger nach links wird wieder, im Selbstaufruf der Funktion, übergeben. Das Laufelement verweist wiederum auf die nächste linke Tochter (Enkelin). Auch hier ist noch nicht Schluss, also das Hilfselement ist nicht "NULL". Die "25" wird ausgegeben. Auch jetzt findet wieder der Selbstaufruf statt. Da aber nun "NULL" übergeben wird, läuft die Funktion normal durch, überspringt aber die if Anweisung. Die Funktion ist beendet. Aber nun sind ja noch Aufgaben offen. Der Computer springt zurück an die Stelle, wo er das letzte Mal nach links gegangen ist und setzt dort gleich wieder mit dem nächsten Befehl ein. In diesem Fall wäre dies jetzt der Selbstaufruf nach Rechts. Auch hier wird "NULL" übergeben. Dieser Unterast ist nun abgearbeitet. Der Computer springt ein weiteres Mal zurück, weil immer noch Aufgaben ausstehen. Wiederum steht als nächstes der Selbstaufruf an und ein Zeiger nach rechts wird wieder übergeben. Das Hilfselement verweist nun auf das rechte Tochterelement, des linken Tochterelementes des Wurzelelementes. Nun wird die "75" ausgegeben und es findet wieder ein Selbstaufruf nach links statt.
...

Hat der Computer alle Aufgaben erledigt, so ist die Rekursion beendet und man hat alle Werte.

Zum Seitenanfang
Zum Inhaltsverzeichnis

© Copyright by Thomas Weiß, 2009 - 2012