Traversierung: Unterschied zwischen den Versionen

Aus wiki.kgl-ratingen.de
Wechseln zu: Navigation, Suche
(Implementierung)
(Rekursive Implementierungen)
Zeile 20: Zeile 20:
 
     print( knoten );
 
     print( knoten );
 
   
 
   
     '''if''' ( knoten.links '''null''' )
+
     '''if''' ( knoten.links != '''null''' )
 
         preOrder( knoten.links ); // rekursiver Aufruf
 
         preOrder( knoten.links ); // rekursiver Aufruf
 
   
 
   
     '''if''' ( knoten.rechts '''null''' )
+
     '''if''' ( knoten.rechts != '''null''' )
 
         preOrder( knoten.rechts );
 
         preOrder( knoten.rechts );
 
  }
 
  }
Zeile 29: Zeile 29:
 
  postOrder( knoten ) {
 
  postOrder( knoten ) {
 
   
 
   
     '''if''' ( knoten.links '''null''' )
+
     '''if''' ( knoten.links != '''null''' )
 
         postOrder( knoten.links ); // rekursiver Aufruf
 
         postOrder( knoten.links ); // rekursiver Aufruf
 
   
 
   
     '''if''' ( knoten.rechts '''null''' )
+
     '''if''' ( knoten.rechts != '''null''' )
 
         postOrder( knoten.rechts );
 
         postOrder( knoten.rechts );
 
   
 
   
Zeile 41: Zeile 41:
 
  inOrder( knoten ) {
 
  inOrder( knoten ) {
 
   
 
   
     '''if''' ( knoten.links '''null''' )
+
     '''if''' ( knoten.links != '''null''' )
 
         inOrder( knoten.links ); // rekursiver Aufruf
 
         inOrder( knoten.links ); // rekursiver Aufruf
 
   
 
   
Zeile 47: Zeile 47:
 
     print( knoten );
 
     print( knoten );
 
   
 
   
     '''if''' ( knoten.rechts '''null''' )
+
     '''if''' ( knoten.rechts != '''null''' )
 
         inOrder( knoten.rechts );
 
         inOrder( knoten.rechts );
 
  }
 
  }

Version vom 27. November 2015, 13:29 Uhr

Die Traversierung bezeichnet das systematische Untersuchen der Knoten des Baumes in einer bestimmten Reihenfolge. Es gibt verschiedene Vorgehensweisen um einen Binärbaum zu untersuchen. Dabei unterscheidet man in drei unterschiedliche Vorgehensweisen:

  • Pre-Order
  • In-Order
  • Post-Order


Pre-Order

Hierbei wird

In-Order

Post-Order

Implementierung

Rekursive Implementierungen

preOrder( knoten ) {

    // Führe die gewünschten Aktionen am Knoten aus, z.B.:
    print( knoten );

    if ( knoten.links != null )
        preOrder( knoten.links ); // rekursiver Aufruf

    if ( knoten.rechts != null )
        preOrder( knoten.rechts );
}
postOrder( knoten ) {

    if ( knoten.links != null )
        postOrder( knoten.links ); // rekursiver Aufruf

    if ( knoten.rechts != null )
        postOrder( knoten.rechts );

    // Führe die gewünschten Aktionen am Knoten aus, z.B.:
    print( knoten );
}
inOrder( knoten ) {

    if ( knoten.links != null )
        inOrder( knoten.links ); // rekursiver Aufruf

    // Führe die gewünschten Aktionen am Knoten aus, z.B.:
    print( knoten );

    if ( knoten.rechts != null )
        inOrder( knoten.rechts );
}

Literatur