Java iterators for C++:
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
Classes | Functions
TL Namespace Reference

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. More...

Classes

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

Functions

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. More...
 
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. More...
 

Detailed Description

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.

Function Documentation

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
Postcondition
Retorna "true" si el árbol es un objeto bien construido
See Also
check_ok(Tree&)
http://www.di-mare.com/adolfo/binder/c04.htm#sc11

Definition at line 872 of file Tree_L.h.

template<class E >
bool TL::operator== ( const Tree< E > &  p,
const Tree< E > &  q 
)
inline

Definition at line 804 of file Tree_L.h.

template<class E >
bool TL::operator!= ( const Tree< E > &  p,
const Tree< E > &  q 
)
inline

Definition at line 806 of file 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
Postcondition
Retorna "true" si el árbol es un objeto bien construido
Deprecated:
Los árboles y los sub-árboles son la misma cosa.
See Also
check_ok(Tree&)

Definition at line 1348 of file Tree_L.h.