listarbo.cpp

//$Id$
/* COMIENZO DE DESCRIPCION

  Listado de \'arboles orientados en diferentes ordenes.
  keywords: arbol orientado

  FIN DE DESCRIPCION */
// -----------------------------------------------------------------
#include <iostream>
#include "./util.h"
#include "./tree.h"
#include "./util_tree.h"

using namespace aed;
using namespace std;

// -------------------------------------------------------------------
void  orden_prev ( tree <int> & t, node_t n) {
  node_t c ;  
  int    p ;
  if ( n == t.end () ) return ;
  cout << (* n) << ' ' ; 
  c = n.lchild () ;
  // notar el pos-incremento despues de la llamada recursiva
  while ( c != t.end () ) { orden_prev (t, c++) ; }
} // end void

// -------------------------------------------------------------------
void  orden_post ( tree <int> & t, node_t n) {
  node_t c ;  
  int    p ;
  if ( n == t.end () ) return ;
  c = n.lchild () ;
  // notar el pos-incremento despues de la llamada recursiva
  while ( c != t.end () ) { orden_post (t, c++) ; }
  cout << (* n) << ' ' ; 
} // end void

// -------------------------------------------------------------------
void  orden_sime ( tree <int> & t, node_t n) {
  node_t c ;  
  int    p ;
  if ( n == t.end () ) return ;
  c = n.lchild () ;
  orden_sime (t, c) ;
  cout << (* n) << ' ' ; 
  // notar el pre-incremento antes de la llamada recursiva
  while ( c != t.end () ) { orden_sime (t, ++c) ; }
} // end void

// -------------------------------------------------------------------
int main () {
  tree <int> t;

  cout << endl ;
  cout << "listados en un arbol ordenado y orientado "  << endl ; 

  for (int j = 0 ; j < 1 ; j++) {
    t.clear ();
    make_random_tree (t, 10, 2);
    cout << endl ;
    cout << "arbol ordenado:"  << endl ; 
    print_tree (t);
    cout << "orden_prev:"  << endl ; 
    orden_prev ( t, t.begin () ) ; 
    cout << endl ; 
    cout << "orden_post:"  << endl ; 
    orden_post ( t, t.begin () ) ; 
    cout << endl ; 
    cout << "orden_sime:"  << endl ; 
    orden_sime ( t, t.begin () ) ;
    cout << endl ;
  } // end for
  cout << endl ;
  return 0 ;
} // end main
// -------------------------------------------------------------------

Generated by GNU Enscript 1.6.6.