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_Ex.h

Algunas funciones de ejemplos de uso de la clase Arbol. Más...

#include "Tree_L.h"
#include <iostream>
#include <iomanip>
#include <cassert>
#include <string>
#include <climits>

Ir al código fuente de este archivo.

Namespaces

namespace  std

Funciones

void Print (Tree &T, unsigned indent=0, unsigned num=0)
 Graba en "cout" el contenido del árbol "T".
void Ztree_Print (Tree &T, string s="", unsigned level=0, bool last_child=true)
 Graba en "cout" el contenido de "T" de la forma en que Ztree.com despliega un árbol.
unsigned My_Count (Tree &T)
 Retorna la cantidad de valores almacenados en el árbol.
unsigned Count_Children (Tree &T)
 Retorna la cantidad de hijos de "T".
void Mirror (Tree &T)
 Convierte a "T" en su sub-árbol espejo, en el que recursivamente los hijos quedan en orden inverso del orden en el que aparecían originalmente en "T".
bool Ancestor (Tree &Child, Tree &Father)
 Retorna true si "Father" es un ancestro de "Child".
unsigned Height (Tree &T)
 Retorna la altura de "T".
unsigned Depth (Tree &T)
 Retorna la longitud del camino desde "T" hasta la raíz del árbol.
void My_Count0 (Tree &T, unsigned &n)
 Incrementa "n" en el número de hijos que tiene el sub-árbol cuya raíz es "T".
bool Comp (Tree &p, Tree &q)
 Compara recursivamente los árboles "p" y "q".
string DOS_string (string &s)
 Cambia las letras de cajita para que el árbol de Ztree_Print() se vea bonito en DOS.
bool Is_Leaf (Tree &T)
 Retorna true cuando el sub-árbol "T" es una hoja, o sea, cuando "T" no tiene hijos.
bool Is_Root (Tree &T)
 Retorna true cuando el sub-árbol "T" es una raíz, o sea, cuando "T" no tiene padre.
void Height0 (Tree &T, unsigned &max, unsigned actual)
 Calcula la altura de sub-árbol.
unsigned Arity (Tree &T)
 Retorna la máxima cantidad de hijos que tienen "T" y todos sus sub-árboles.
bool Is_Binary (Tree &T)
 Retorna "true" cuando el árbol es binario.
unsigned Length (Tree &n1, Tree &n2)
 Esta función retorna el número de aristas que hay en el único camino que une la raíz de "n1" con la de "n2".
void New_Root (Tree &T, Tree &sT)
 Transforma el árbol "T" que contiene como sub-árbol a"sT" para que la raíz de "T" sea "sT".


Descripción detallada

Algunas funciones de ejemplos de uso de la clase Arbol.

Definición en el archivo Tree_Ex.h.


Documentación de las funciones

void Print Tree T,
unsigned  indent,
unsigned  num
 

Graba en "cout" el contenido del árbol "T".

  • Indenta a los hijos "indent" espacios dobles
  • Numera a los hijos a partir de "num" usando 2 dígitos
  • Usualmente se invoca así: Print(T);

Definición en la línea 118 del archivo Tree_Ex.h.

void Ztree_Print Tree T,
string  s,
unsigned  level,
bool  last_child
 

Graba en "cout" el contenido de "T" de la forma en que Ztree.com despliega un árbol.

  • "level" indica que el nivel de anidamiento desde la raíz hasta el nodo
  • "last_child" indica se éste es el último hijo de su padre

Comentarios:
Forma usual de invocación: Ztree_Print( T );

Definición en la línea 155 del archivo Tree_Ex.h.

unsigned My_Count Tree T  ) 
 

Retorna la cantidad de valores almacenados en el árbol.

Definición en la línea 52 del archivo Tree_Ex.h.

unsigned Count_Children Tree T  ) 
 

Retorna la cantidad de hijos de "T".

Definición en la línea 63 del archivo Tree_Ex.h.

void Mirror Tree T  ) 
 

Convierte a "T" en su sub-árbol espejo, en el que recursivamente los hijos quedan en orden inverso del orden en el que aparecían originalmente en "T".

           a                a
          /|\              /|\
        / / \ \          / / \ \
       b  c d  e        e  d c  b
      /|\     /|\      /|\     /|\
     f g h   i j k    k j i   h g f
              / \      / \
              l m      m l
               / \    / \
               n o    o n

Definición en la línea 214 del archivo Tree_Ex.h.

bool Ancestor Tree Child,
Tree Father
 

Retorna true si "Father" es un ancestro de "Child".

  • La raíz no tiene ancestros.
  • Un árbol vacío no tiene ancestros.

Definición en la línea 257 del archivo Tree_Ex.h.

unsigned Height Tree T  )  [inline]
 

Retorna la altura de "T".

  • La altura es la distanca desde "T" hasta la hoja más profunda en el sub-árbol formado por todos los descendientes de "T".
  • La altura de un nodo hoja siempre es cero.
  • [ Is_Leaf(T) == true ] ==> [ Height(T) == 0 ]

                                     [ Depth() Height() ]
    a [0 4]                a               [0 4]
    |--b [1 1]             |--b            [1 1]
    |  |--f [2 0]          |  |--f         [2 0]
    |  |--g [2 0]          |  |--g         [2 0]
    |  +--h [2 0]          |  +--h         [2 0]
    |--c [1 0]             |--c            [1 0]
    |--d [1 0]             |--d            [1 0]
    +--e [1 3]             +--e            [1 3]
       |--i [2 0]             |--i         [2 0]
       |--j [2 2]             |--j         [2 2]
       |  |--l [3 0]          |  |--l      [3 0]
       |  +--m [3 1]          |  +--m      [3 1]
       |     |--n [4 0]       |     |--n   [4 0]
       |     +--o [4 0]       |     +--o   [4 0]
       +--k [2 0]             +--k         [2 0]

Definición en la línea 335 del archivo Tree_Ex.h.

unsigned Depth Tree T  ) 
 

Retorna la longitud del camino desde "T" hasta la raíz del árbol.

  • Retorna la profundidad del sub-árbol respecto de su raíz
  • La profundidad de la raíz del árbol es cero.
  • T.Empty() ==> [ Depth(T) == 0 ]

Definición en la línea 350 del archivo Tree_Ex.h.

void My_Count0 Tree T,
unsigned &  n
 

Incrementa "n" en el número de hijos que tiene el sub-árbol cuya raíz es "T".

  • Cambia el valor de "n"
  • No cuenta a la raíz de "T"
  • Usualmente se invoca así:
     { n = 1; My_Count0(T, n); } 
    

Precondición:
! T. Empty()

Definición en la línea 42 del archivo Tree_Ex.h.

bool Comp Tree p,
Tree q
 

Compara recursivamente los árboles "p" y "q".

Definición en la línea 83 del archivo Tree_Ex.h.

string DOS_string string &  s  ) 
 

Cambia las letras de cajita para que el árbol de Ztree_Print() se vea bonito en DOS.

Postcondición:
No funciona porque Win <==> cout convierten a su antojo las letras

Definición en la línea 140 del archivo Tree_Ex.h.

bool Is_Leaf Tree T  )  [inline]
 

Retorna true cuando el sub-árbol "T" es una hoja, o sea, cuando "T" no tiene hijos.

  • Un sub-árbol vacío no es una hoja porque no tiene raíz.

Definición en la línea 276 del archivo Tree_Ex.h.

bool Is_Root Tree T  )  [inline]
 

Retorna true cuando el sub-árbol "T" es una raíz, o sea, cuando "T" no tiene padre.

  • Un sub-árbol vacío no es una raíz porque no tiene raíz.

Definición en la línea 285 del archivo Tree_Ex.h.

void Height0 Tree T,
unsigned &  max,
unsigned  actual
 

Calcula la altura de sub-árbol.

  • Esta función es el paso recursivo necesario para implementar Height()
  • Recorre recursivamente el árbol y recuerda la máxima profundidad encontrada en "max".
  • "actual" es la profundidad del nodo actual.

Definición en la línea 295 del archivo Tree_Ex.h.

unsigned Arity Tree T  ) 
 

Retorna la máxima cantidad de hijos que tienen "T" y todos sus sub-árboles.

Definición en la línea 364 del archivo Tree_Ex.h.

bool Is_Binary Tree T  ) 
 

Retorna "true" cuando el árbol es binario.

Definición en la línea 380 del archivo Tree_Ex.h.

unsigned Length Tree n1,
Tree n2
 

Esta función retorna el número de aristas que hay en el único camino que une la raíz de "n1" con la de "n2".

  • Si "n1" y "n2" pertenecen a árboles diferente, retorna UINT_MAX == infinito

Definición en la línea 390 del archivo Tree_Ex.h.

void New_Root Tree T,
Tree sT
 

Transforma el árbol "T" que contiene como sub-árbol a"sT" para que la raíz de "T" sea "sT".

  • No hace nada si T.Father().Emtpy() ["T" ya es la raíz del árbol]
  • Traslada a Father() para que sea el hijo más izquierdo de manera que ocupe la posición "n-1" donde n == Leftmost().Child_Number()"
  • Traslada a los hermanos izquierdos para que estén antes de la antigua raíz
  • Traslada a los hermanos derechos para que estén después de la antigua raíz

           a                      e
          /|\                    /|\
        / / \ \                / / \ \
       b  c d  e              a  i j  k
      /|\     /|\            /|\
     f g h   i j k          b c d
                           /|\
                          f g h

Precondición:
  • Leftmost().Child_Number() > 0
  • Ancestor(sT, T) == true

Definición en la línea 443 del archivo Tree_Ex.h.


Generado el Sun Feb 19 09:37:34 2006 para Uso de TL::Tree y TV::Tree: por  doxygen 1.3.9.1