Iteradores Java para C++:
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Amigas 'defines' Páginas
Clases | Funciones
Referencia del Namespace TL

Arboles de adolf.nosp@m.o@di.nosp@m.-mare.nosp@m..com cuyos nodos contienen un puntero izquierdo al hijo y uno derecho al hermano o padre. Más...

Clases

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

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. Más...
 
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. Más...
 

Descripción detallada

Arboles de adolf.nosp@m.o@di.nosp@m.-mare.nosp@m..com cuyos nodos contienen un puntero izquierdo al hijo y uno derecho al hermano o padre.

Documentación de las funciones

template<class E >
bool TL::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 TL::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 TL::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 TL::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
Obsoleto:
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.