Página principal | Lista de namespace | Lista de componentes | Lista de archivos | Miembros del Namespace  | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

Referencia del Archivo Tree_L.h

Declaraciones y definiciones para la clase Tree. Más...

#include <cassert>

Ir al código fuente de este archivo.

Namespaces

namespace  TL

Clases

class  TL::Tree_Node< E >
 Nodos almacenados en el árbol. Más...
class  TL::Tree< E >
 Los métodos para trabajar con árboles regresan "referencias" que son sub-árboles. Más...

Definiciones

#define USE_v_Alive

Funciones

template<class E>
bool check_ok (const E &)
template<class E>
bool check_ok (const Tree< E > &T)
 Verifica que se cumpla la invariante de la clase, o sea, que el objeto esté bien construido.
template<class E>
bool operator== (const Tree< E > &p, const Tree< E > &q)
template<class E>
bool operator!= (const Tree< E > &p, const Tree< E > &q)
template<class E>
bool check_ok_Tree (Tree< E > &T)
 Verifica que se cumpla la invariante de la clase, o sea, que el objeto esté bien construido.


Descripción detallada

Declaraciones y definiciones para la clase Tree.

Autor:
Adolfo Di Mare <adolfo@di-mare.com>
Fecha:
2006

Definición en el archivo Tree_L.h.


Documentación de las definiciones

#define USE_v_Alive
 

Definición en la línea 16 del archivo Tree_L.h.


Documentación de las funciones

template<class E>
bool check_ok const E &   ) 
 

template<class E>
bool TL::check_ok const Tree< E > &  T  ) 
 

Verifica que se cumpla la invariante de la clase, o sea, que el objeto esté bien construido.

  • La razón por la que esta función no es un método es continuar la costumbre de muchos programadores quienes no definen la invariante para sus clases, pues en muchos casos sobra hacerlo.
  • No invoca check_ok( value_type& ) para cada valor almacenado, aunque si el árbol cumple con su invariante necesariamentes es porque también sus elementos almacenados están bien construidos.
  • Esta función en general es difícil de implementar, y en algunos casos es imposible pues, cuando el objeto no está bien construido, puede ocurrir que la función no retorne (como ocurriria si un nodo interno del árbol apunta de vuelta a la raíz, lo que se resulta en un círculo).
  • En general, la implementáción de esta función no es completa pues hay casos en que es imposible verificar la invariante de una clase.

Complejidad:
O( Count() ) ==> tiempo
O( Height() ) ==> espacio
Postcondición:
Retorna "true" si el árbol es un objeto bien construido
Ver también:
check_ok(Tree&)

http://www.di-mare.com/adolfo/binder/c04.htm#sc11

Definición en la línea 872 del archivo Tree_L.h.

template<class E>
bool operator== const Tree< E > &  p,
const Tree< E > &  q
[inline]
 

Definición en la línea 804 del archivo Tree_L.h.

template<class E>
bool operator!= const Tree< E > &  p,
const Tree< E > &  q
[inline]
 

Definición en la línea 806 del archivo Tree_L.h.

template<class E>
bool check_ok_Tree Tree< E > &  T  )  [inline]
 

Verifica que se cumpla la invariante de la clase, o sea, que el objeto esté bien construido.

  • Además de todo el trabajo que hace check_ok(Tree& T), acá hay que constatar que el nodo raíz no tiene padre, que es la diferencia fundamental entre un árbol y un sub-árbol

Postcondición:
Retorna "true" si el árbol es un objeto bien construido

Desaprobado:
Los árboles y los sub-árboles son la misma cosa.
Ver también:
check_ok(Tree&)

Definición en la línea 1348 del archivo Tree_L.h.


Generado el Tue Jun 30 06:20:32 2009 para Uso de TL::Tree y TV::Tree: por  doxygen 1.3.9.1