Estructura de Datos : Arboles Binarios Hilvanados ( Threaded Binary Trees )


Definiciones


Nodos

   *--------------------------------------*
   | LBIT | LCHILD | DATA | RCHILD | RBIT |
   *--------------------------------------*

              1 Nodo - 5 Campos


Ejemplos

                  *---*                                                   *-----*
                  | A |                                                   |  A  |
                  *---*                                                   *-----*
                   | |                                                     |A A|
            +------+ +------+                                    +---------+. .+---------+
            |               |                                    |          . .          |
          *---*           *---*                               *-----*       . .       *-----*
          | B |           | C |                               |  B  |       . .       |  C  |          A
          *---*           *---*                               *-----*       . .       *-----*          .
           | |             | |                                 |A A|        . .        |A A|           .
        +--+ +--+       +--+ +--+                          +---+. .+---+    . .    +---+. .+---+       .
        |       |       |       |                          |    . .    |    . .    |    . .    |       .
      *---*   *---*   *---*   *---*                     *-----* . . *-----* . . *-----* . . *-----*    .
      | D |   | E |   | F |   | G |          A          |  D  | . ..|  E  |.. ..|  F  |.. ..|  G  |.....
      *---*   *---*   *---*   *---*          .          *-----* .   *-----*     *-----*     *-----*
       | |                                   .           |A A|  .......
    +--+ +--+                                .       +---+. .+---+    .
    |       |                                .       |    . .    |    .
  *---*   *---*                              .    *-----* . . *-----* .
  | H |   | I |                              .....|  H  |.. ..|  I  |..
  *---*   *---*                                   *-----*     *-----*

               Nodos   = 9                                              Nodos   = 9
               Pointer = 8                                              Pointer = 8
               Nulos   = 10                                             Threads = 10

                 Arbol 1                                                  Arbol 2
El Arbol 1 es un árbol binario y el Arbol 2 es un árbol binario hilvanado. Observar que la thread isquierda del nodo H y la thread derecha del nodo G no apuntan a ningún nodo específico. La thread del nodo H indicaría el nodo donde comenzar a navegar el árbol inorder y la thread del nodo G indicaría la terminación de la navegación. La estructura de datos árboles binarios hilvanados se consolida con el uso de un nodo cabecera.


Nodo Cabecera

   *--------------------------------------*                           *--------------------------------------*
   | LBIT | LCHILD | DATA | RCHILD | RBIT |                      +--->|   0  |    *   |  --  |   *    |  0   |<---+
   *--------------------------------------*                      |    *-----------|--------------|-----------*    |
                                                                 |                |              |                |
                                                                 +----------------+              +----------------+
                  Nodo Comun                                                       Nodo  Cabecera


Terminología

  1. Arbol Binario Hilvandado ( Threaded BTree )
  2. Hilvan ( Thread )
  3. Puntero ( Pointer )
  4. Enlace Nulo ( Null Link )


Representacion en Memoria de un Arbol Binario Hilvanado

                                                     *---------------------*
                                              T ---> | 1 | * |  -  | * | 1 |
                                                     *-----|---------|-----*<----+
                                                           |         |           |
                                                           +----+    +-----------+
                                                                |
                                                                V
                                                     *---------------------*
                                                     | 1 | * |  A  | * | 1 |
                                                     *-----|---------|-----*
                                      +--------------------+         +--------------------+
                                      V                                                   V
                           *---------------------*                             *---------------------*
                           | 1 | * |  -  | * | 1 |                             | 1 | * |  C  | * | 1 |
                           *---------------|-----*                             *-----|---------|-----*
                         +-----+             +-----+                         +-------+         +-------+
                         V                         V                         V                         V
              *---------------------*   *---------------------*   *---------------------*   *---------------------*
              | 1 | * |  D  | * | 1 |   | 0 | # |  E  | # | 0 |   | 0 | # |  F  | # | 0 |   | 0 | # |  G  | # | 0 |
              *-----|---------|-----*   *-----.---------.-----*   *-----.---------.-----*   *-----.---------.-----*
            +-------+         +-------+       .         .               .         .               .         .
            V                         V
 *---------------------*   *---------------------*
 | 0 | # |  H  | # | 0 |   | 0 | # |  I  | # | 1 |
 *-----.---------.-----*   *-----.---------.-----*
       .         .               .         .

                                                             Arbol 3


Procedimientos de Arboles Binarios Hilvanados

Sucesor de X en un arbol binario hilvanado

Travesia en Orden ( Inorder Traversal )


Inserciones de Nodos en Arboles Binarios Hilvanados


Eliminaciones de Nodos en Arboles Binarios Hilvanados