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...
|
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...
|
|
|
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...
|
|
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.
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 |
template<class E >
bool TL::operator!= |
( |
const Tree< E > & |
p, |
|
|
const Tree< E > & |
q |
|
) |
| |
|
inline |
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.