SlideShare una empresa de Scribd logo
1 de 6
REPUBLICA BOLIVARIANA DE VENEZUELA
     UNIVERSIDAD FERMIN TORO
      FACULTAD DE INGENIERIA




                         Alumnos:
                           Jonathan Bastidas C.I. 17.048.561
                             Cleiver Manzanilla C.I. 17.304.303

      Cabudare, Enero 2013
Es la unidad sobre la que se construye el árbol y puede tener
 Es una estructura de datos                   cero o más nodos hijos conectados a él. Se dice que un nodo a
 ampliamente usada que imita la
                                              es padre de un nodo b si existe un enlace desde a hasta b (en
 forma de un árbol (un conjunto de
 nodos conectados).                           ese caso, también decimos que b es hijo de a). Sólo puede
                                              haber un único nodo sin padres, que llamaremos raíz.

                                  ÁRBOL
                                                                  NODO
 Es un nodo que no tiene hijos.



                                                                           NODO EXTERNO E INTERNO
                          HOJA
                                          ÁRBOLES
     RAMA
                                                                Si algún hijo tiene como referencia a null,
                                                                es decir que no almacena ningún dato. En
Son los demás nodos que tienen                                  el caso contrario el hijo es llamado un nodo
padre y uno o varios hijos.                                     interno.

                                  ÁRBOL BINARIO
                                                         USOS COMUNES DE LOS ÁRBOLES BINARIOS


   Es una estructura de datos en la cual cada nodo
   siempre tiene un hijo izquierdo y un hijo derecho.           - Los árboles binarios de búsqueda.
   No pueden tener más de dos hijos (de ahí el                  - Los montículos binarios.
   nombre "binario").                                           - Codificación de Huffman.
ÁRBOLES
                                                                           OPERACIONES COMUNES EN
    TIPOS DE ÁRBOLES BINARIOS                                                     ÁRBOLES


                                                                      - Enumerar todos los elementos.
          Árbol binario: Es un árbol con raíz en el que               - Buscar un elemento.
          cada nodo tiene como máximo dos hijos.                      - Dado un nodo, listar los hijos (si los hay).
                                                                      - Borrar un elemento.
       Árbol binario lleno: Es un árbol en el que                     - Eliminar un subárbol (algunas veces llamada podar).
                                                                      - Añadir un subárbol (algunas veces llamada injertar).
       cada nodo tiene cero o dos hijos.
                                                                      - Encontrar la raíz de cualquier nodo.
                                                                      Usos comunes de los árboles:
Árbol binario perfecto: Es un árbol binario lleno                     - Representación de datos jerárquicos.
en el que todas las hojas (vértices con cero hijos)                   - Como ayuda para realizar búsquedas en conjuntos de datos.
están a la misma profundidad (distancia desde la
raíz, también llamada altura).

                                                                     MÉTODOS PARA ALMACENAR
  ÁRBOLES BINARIOS DE BUSQUEDA                                          ÁRBOLES BINARIOS

Es una estructura sobre la cual se pueden realizar eficientemente las
operaciones de búsqueda, inserción y eliminación.


                         Los árboles binarios pueden ser construidos a partir de lenguajes de programación de varias formas.
                         En un lenguaje con registros y referencias, los árboles binarios son construidos típicamente con una
                         estructura de nodos y punteros en la cual se almacenan datos, cada uno de estos nodos tiene una
                         referencia o puntero a un nodo izquierdo y a un nodo derecho denominados hijos.
EJEMPLO DE ÁRBOL BINARIO DE BÚSQUEDA
                                                                               120

                                                                                                140
                                                         87

                                      43

                                                                       99                130

                           22
                                               65


                                                                 93                                   135
                                      56


Observe que si en el árbol mostrado se sustituye el valor 140 del nodo por 160, 99 por 105 y 43 por 55; el árbol continúa siendo un árbol
binario de búsqueda. Ahora bien, si en dicho árbol se remplaza el valor 87 del nodo por 125, entonces el árbol deja de ser un árbol binario
de búsqueda puesto que viola el principio que dice que: “Todos los nodos del subárbol izquierdo del nodo T deben ser menores o iguales al
nodo T” (en este caso 125 no es menor a 120).

                                                                               120

                                                                                                140
                                                         87

                                     43

                                                                       99               130

                           22
                                              65


                                                                 93                                   135
                                     56


 También es posible observar que si se efectúa un recorrido inorden sobre un árbol de búsqueda se obtendrá una clasificación de los nodos
 en forma ascendente. El recorrido inorden del árbol de la figura anterior produce el siguiente resultado:
 22-43-56-65-87-93-99-120-130-135-140
ÁRBOL BINARIO

   INSERCIÓN EN UN ÁRBOL BINARIO DE
              BÚSQUEDA                                                BORRADO EN UN ÁRBOL BINARIO DE
                                                                               BÚSQUEDA


La inserción es una operación que se puede
realizar eficientemente en un árbol binario de
búsqueda.                                                     Consiste en eliminar un nodo del árbol sin violar los
                                                              principios que definen justamente un árbol binario
                                                              de búsqueda.



        PASOS QUE DEBEN REALIZARSE PARA INSERTAR UN ELEMENTO A UN ÁRBOL BINARIO DE
                                         BÚSQUEDA



1.Debe compararse la clave a insertar con la raíz del árbol. Si es mayor, debe avanzarse hacia el subárbol derecho.
Si es menor, debe avanzarse hacia el subárbol izquierdo.
2. Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las siguientes condiciones:
             2.1 El sub árbol derecho es igual a vacío, o el subárbol izquierdo es igual a vació; en cuyo caso se
procederá a insertar el elemento en el lugar que le corresponde.
             2.2 La clave que quiere insertarse es igual a la raíz del árbol; en cuyo caso no se realiza la inserción.
PARA BORRAR UN ELEMENTO EN UN ARBOL SE DEBE DISTINGUIR LOS
                                 SIGUIENTES CASOS

1. Si el elemento a borrar es terminal u hoja, simplemente se suprime.


   2. Si el elemento a borrar tiene un solo descendiente, entonces tiene que
   sustituirse por ese descendiente.


      3. Si el elemento a borrar tiene los dos descendientes, entonces se tiene que sustituir por el nodo que se
      encuentra más a la izquierda en el subárbol derecho o por el nodo que se encuentra más a la derecha en el
      subárbol izquierdo.


   ARBOLES BALANCEADOS

                                                           La búsqueda más eficiente se efectúa en un árbol binario balanceado.
                                                           Desafortunadamente, la función Inserta no asegura que el árbol permanezca
                                                           balanceado, el grado de balance depende del orden del orden en que son
                                                           insertados los nodos en el árbol.


                                     Un árbol binario balanceado es un árbol binario en el cual las alturas de los dos sub árboles de todo
                                     nodo difieren a lo sumo en 1.


                  El balance de un nodo en un árbol binario se define como la altura de su subárbol izquierdo menos la altura de su
                  subárbol derecho.


Los árboles balanceados también pueden usarse para una implantación eficiente de colas de prioridad.

Más contenido relacionado

La actualidad más candente

Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Modos de Direccionamiento del Procesador
Modos de Direccionamiento del ProcesadorModos de Direccionamiento del Procesador
Modos de Direccionamiento del ProcesadorCloud Rodriguez
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceadoslourdesnbv
 
ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) brayan0015
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 
Arboles b+ de prefijos simples
Arboles b+ de prefijos simplesArboles b+ de prefijos simples
Arboles b+ de prefijos simplesKrytor
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoLutzo Guzmán
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+neltherdaza
 
Arbol b ASIRB
Arbol b ASIRBArbol b ASIRB
Arbol b ASIRBfjbarbaca
 
Árboles AA
Árboles AAÁrboles AA
Árboles AAmarbmdj
 
Programacion 3. Arboles B+
Programacion 3. Arboles B+Programacion 3. Arboles B+
Programacion 3. Arboles B+Emmanuel Pineda
 
Arbol rojo y negro
Arbol rojo y negroArbol rojo y negro
Arbol rojo y negroJuan Bass
 

La actualidad más candente (20)

Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Modos de Direccionamiento del Procesador
Modos de Direccionamiento del ProcesadorModos de Direccionamiento del Procesador
Modos de Direccionamiento del Procesador
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles) ejercicios de recorrido de grafos (arboles)
ejercicios de recorrido de grafos (arboles)
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Arreglos
ArreglosArreglos
Arreglos
 
Arboles v2
Arboles v2Arboles v2
Arboles v2
 
Arboles b+ de prefijos simples
Arboles b+ de prefijos simplesArboles b+ de prefijos simples
Arboles b+ de prefijos simples
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+
 
Arbol b ASIRB
Arbol b ASIRBArbol b ASIRB
Arbol b ASIRB
 
Árboles AA
Árboles AAÁrboles AA
Árboles AA
 
Programacion 3. Arboles B+
Programacion 3. Arboles B+Programacion 3. Arboles B+
Programacion 3. Arboles B+
 
Arbol rojo y negro
Arbol rojo y negroArbol rojo y negro
Arbol rojo y negro
 
Mapa Conceptual
Mapa ConceptualMapa Conceptual
Mapa Conceptual
 
ARBOLES BINARIOS
ARBOLES BINARIOSARBOLES BINARIOS
ARBOLES BINARIOS
 

Destacado

Tecnicas de rotacion en arboles balanceados
Tecnicas de rotacion en arboles balanceadosTecnicas de rotacion en arboles balanceados
Tecnicas de rotacion en arboles balanceadosPEREZHROS
 
Arboles de Busqueda Balanceada (AVL)
Arboles de Busqueda Balanceada (AVL)Arboles de Busqueda Balanceada (AVL)
Arboles de Busqueda Balanceada (AVL)warrionet
 
Arboles AVL Rotaciones
Arboles AVL RotacionesArboles AVL Rotaciones
Arboles AVL RotacionesEvans Balcazar
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceadosvmtorrealba
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datosamartinez_29
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datosnukeeHE
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colasrcad
 
Crear agenda telefonica access paso a paso
Crear agenda telefonica access paso a pasoCrear agenda telefonica access paso a paso
Crear agenda telefonica access paso a pasoLouis Jhosimar
 
Capitulo 8 Memoria Principal
Capitulo 8 Memoria PrincipalCapitulo 8 Memoria Principal
Capitulo 8 Memoria Principallagm000
 
Asignación de memoria
Asignación de memoriaAsignación de memoria
Asignación de memoriaguestca1de2e
 
Capitulo 9 Memoria Virtual
Capitulo 9 Memoria VirtualCapitulo 9 Memoria Virtual
Capitulo 9 Memoria Virtuallagm000
 
18 Arboles Como Estructura De Busqueda
18 Arboles Como Estructura De Busqueda18 Arboles Como Estructura De Busqueda
18 Arboles Como Estructura De BusquedaUVM
 

Destacado (20)

Tecnicas de rotacion en arboles balanceados
Tecnicas de rotacion en arboles balanceadosTecnicas de rotacion en arboles balanceados
Tecnicas de rotacion en arboles balanceados
 
Arboles AVL
Arboles AVLArboles AVL
Arboles AVL
 
Arboles de Busqueda Balanceada (AVL)
Arboles de Busqueda Balanceada (AVL)Arboles de Busqueda Balanceada (AVL)
Arboles de Busqueda Balanceada (AVL)
 
Arboles AVL Rotaciones
Arboles AVL RotacionesArboles AVL Rotaciones
Arboles AVL Rotaciones
 
Punteros
PunterosPunteros
Punteros
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
HEAPS
HEAPSHEAPS
HEAPS
 
Programacion de Cadenas
Programacion de CadenasProgramacion de Cadenas
Programacion de Cadenas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Tda y heaps
Tda y heapsTda y heaps
Tda y heaps
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
Crear agenda telefonica access paso a paso
Crear agenda telefonica access paso a pasoCrear agenda telefonica access paso a paso
Crear agenda telefonica access paso a paso
 
Capitulo 8 Memoria Principal
Capitulo 8 Memoria PrincipalCapitulo 8 Memoria Principal
Capitulo 8 Memoria Principal
 
Asignación de memoria
Asignación de memoriaAsignación de memoria
Asignación de memoria
 
Capitulo 9 Memoria Virtual
Capitulo 9 Memoria VirtualCapitulo 9 Memoria Virtual
Capitulo 9 Memoria Virtual
 
4 memoria dinamica
4 memoria dinamica4 memoria dinamica
4 memoria dinamica
 
18 Arboles Como Estructura De Busqueda
18 Arboles Como Estructura De Busqueda18 Arboles Como Estructura De Busqueda
18 Arboles Como Estructura De Busqueda
 

Similar a Arboles balanceados

Similar a Arboles balanceados (20)

Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Arboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de BusquedaArboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de Busqueda
 
Unidad 4 informe técnico
Unidad  4 informe técnicoUnidad  4 informe técnico
Unidad 4 informe técnico
 
Informe de Arboles.pdf
Informe de Arboles.pdfInforme de Arboles.pdf
Informe de Arboles.pdf
 
Estructura de dato unidad 4
Estructura de dato unidad 4Estructura de dato unidad 4
Estructura de dato unidad 4
 
arbol.pdf
arbol.pdfarbol.pdf
arbol.pdf
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Arboles.pptx
Arboles.pptxArboles.pptx
Arboles.pptx
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
Arboles
ArbolesArboles
Arboles
 
Arboles Ordenados
Arboles OrdenadosArboles Ordenados
Arboles Ordenados
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Declarar Arboles. Operaciones. Ejemplospdf
Declarar Arboles. Operaciones. EjemplospdfDeclarar Arboles. Operaciones. Ejemplospdf
Declarar Arboles. Operaciones. Ejemplospdf
 
Arboles TDAS
Arboles TDASArboles TDAS
Arboles TDAS
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 
Arboles
ArbolesArboles
Arboles
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
 

Más de Jonathan Bastidas

Que es complejidad computacional
Que es complejidad computacionalQue es complejidad computacional
Que es complejidad computacionalJonathan Bastidas
 
Pasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingPasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingJonathan Bastidas
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Ejercicio de máquina de turing
Ejercicio de máquina de turingEjercicio de máquina de turing
Ejercicio de máquina de turingJonathan Bastidas
 
Como funciona una maquina de turing
Como funciona una maquina de turingComo funciona una maquina de turing
Como funciona una maquina de turingJonathan Bastidas
 
Clasificación de las máquinas de turing
Clasificación de las máquinas de turingClasificación de las máquinas de turing
Clasificación de las máquinas de turingJonathan Bastidas
 
Categorías principales de la complejidad computacional
Categorías principales de la complejidad computacionalCategorías principales de la complejidad computacional
Categorías principales de la complejidad computacionalJonathan Bastidas
 
Sistema de administracion turistica pantallas, menu y submenus diagrama entid...
Sistema de administracion turistica pantallas, menu y submenus diagrama entid...Sistema de administracion turistica pantallas, menu y submenus diagrama entid...
Sistema de administracion turistica pantallas, menu y submenus diagrama entid...Jonathan Bastidas
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanJonathan Bastidas
 
Plan nacional de ciencia, tecnología e innovación 2005 2030 marco político - ...
Plan nacional de ciencia, tecnología e innovación 2005 2030 marco político - ...Plan nacional de ciencia, tecnología e innovación 2005 2030 marco político - ...
Plan nacional de ciencia, tecnología e innovación 2005 2030 marco político - ...Jonathan Bastidas
 
Ejercicios propuestos jonathan bastidas
Ejercicios propuestos jonathan bastidasEjercicios propuestos jonathan bastidas
Ejercicios propuestos jonathan bastidasJonathan Bastidas
 
Ejercicios propuestos jonathan bastidas
Ejercicios propuestos jonathan bastidasEjercicios propuestos jonathan bastidas
Ejercicios propuestos jonathan bastidasJonathan Bastidas
 
Como se relaciona la tecnologia con el desarrollo economico social
Como se relaciona la tecnologia con el desarrollo economico socialComo se relaciona la tecnologia con el desarrollo economico social
Como se relaciona la tecnologia con el desarrollo economico socialJonathan Bastidas
 

Más de Jonathan Bastidas (17)

Tipos de máquina de turing
Tipos de máquina de turingTipos de máquina de turing
Tipos de máquina de turing
 
Que es complejidad computacional
Que es complejidad computacionalQue es complejidad computacional
Que es complejidad computacional
 
Pasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turingPasos para la construcción de una máquina de turing
Pasos para la construcción de una máquina de turing
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Ejercicio de máquina de turing
Ejercicio de máquina de turingEjercicio de máquina de turing
Ejercicio de máquina de turing
 
Como funciona una maquina de turing
Como funciona una maquina de turingComo funciona una maquina de turing
Como funciona una maquina de turing
 
Clasificación de las máquinas de turing
Clasificación de las máquinas de turingClasificación de las máquinas de turing
Clasificación de las máquinas de turing
 
Categorías principales de la complejidad computacional
Categorías principales de la complejidad computacionalCategorías principales de la complejidad computacional
Categorías principales de la complejidad computacional
 
Auditoria de sistemas
Auditoria de sistemasAuditoria de sistemas
Auditoria de sistemas
 
Sistema de administracion turistica pantallas, menu y submenus diagrama entid...
Sistema de administracion turistica pantallas, menu y submenus diagrama entid...Sistema de administracion turistica pantallas, menu y submenus diagrama entid...
Sistema de administracion turistica pantallas, menu y submenus diagrama entid...
 
Diseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizanDiseño estructurado y las técnicas que lo caracterizan
Diseño estructurado y las técnicas que lo caracterizan
 
Capa de control de enlace
Capa de control de enlaceCapa de control de enlace
Capa de control de enlace
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Plan nacional de ciencia, tecnología e innovación 2005 2030 marco político - ...
Plan nacional de ciencia, tecnología e innovación 2005 2030 marco político - ...Plan nacional de ciencia, tecnología e innovación 2005 2030 marco político - ...
Plan nacional de ciencia, tecnología e innovación 2005 2030 marco político - ...
 
Ejercicios propuestos jonathan bastidas
Ejercicios propuestos jonathan bastidasEjercicios propuestos jonathan bastidas
Ejercicios propuestos jonathan bastidas
 
Ejercicios propuestos jonathan bastidas
Ejercicios propuestos jonathan bastidasEjercicios propuestos jonathan bastidas
Ejercicios propuestos jonathan bastidas
 
Como se relaciona la tecnologia con el desarrollo economico social
Como se relaciona la tecnologia con el desarrollo economico socialComo se relaciona la tecnologia con el desarrollo economico social
Como se relaciona la tecnologia con el desarrollo economico social
 

Arboles balanceados

  • 1. REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD FERMIN TORO FACULTAD DE INGENIERIA Alumnos: Jonathan Bastidas C.I. 17.048.561 Cleiver Manzanilla C.I. 17.304.303 Cabudare, Enero 2013
  • 2. Es la unidad sobre la que se construye el árbol y puede tener Es una estructura de datos cero o más nodos hijos conectados a él. Se dice que un nodo a ampliamente usada que imita la es padre de un nodo b si existe un enlace desde a hasta b (en forma de un árbol (un conjunto de nodos conectados). ese caso, también decimos que b es hijo de a). Sólo puede haber un único nodo sin padres, que llamaremos raíz. ÁRBOL NODO Es un nodo que no tiene hijos. NODO EXTERNO E INTERNO HOJA ÁRBOLES RAMA Si algún hijo tiene como referencia a null, es decir que no almacena ningún dato. En Son los demás nodos que tienen el caso contrario el hijo es llamado un nodo padre y uno o varios hijos. interno. ÁRBOL BINARIO USOS COMUNES DE LOS ÁRBOLES BINARIOS Es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. - Los árboles binarios de búsqueda. No pueden tener más de dos hijos (de ahí el - Los montículos binarios. nombre "binario"). - Codificación de Huffman.
  • 3. ÁRBOLES OPERACIONES COMUNES EN TIPOS DE ÁRBOLES BINARIOS ÁRBOLES - Enumerar todos los elementos. Árbol binario: Es un árbol con raíz en el que - Buscar un elemento. cada nodo tiene como máximo dos hijos. - Dado un nodo, listar los hijos (si los hay). - Borrar un elemento. Árbol binario lleno: Es un árbol en el que - Eliminar un subárbol (algunas veces llamada podar). - Añadir un subárbol (algunas veces llamada injertar). cada nodo tiene cero o dos hijos. - Encontrar la raíz de cualquier nodo. Usos comunes de los árboles: Árbol binario perfecto: Es un árbol binario lleno - Representación de datos jerárquicos. en el que todas las hojas (vértices con cero hijos) - Como ayuda para realizar búsquedas en conjuntos de datos. están a la misma profundidad (distancia desde la raíz, también llamada altura). MÉTODOS PARA ALMACENAR ÁRBOLES BINARIOS DE BUSQUEDA ÁRBOLES BINARIOS Es una estructura sobre la cual se pueden realizar eficientemente las operaciones de búsqueda, inserción y eliminación. Los árboles binarios pueden ser construidos a partir de lenguajes de programación de varias formas. En un lenguaje con registros y referencias, los árboles binarios son construidos típicamente con una estructura de nodos y punteros en la cual se almacenan datos, cada uno de estos nodos tiene una referencia o puntero a un nodo izquierdo y a un nodo derecho denominados hijos.
  • 4. EJEMPLO DE ÁRBOL BINARIO DE BÚSQUEDA 120 140 87 43 99 130 22 65 93 135 56 Observe que si en el árbol mostrado se sustituye el valor 140 del nodo por 160, 99 por 105 y 43 por 55; el árbol continúa siendo un árbol binario de búsqueda. Ahora bien, si en dicho árbol se remplaza el valor 87 del nodo por 125, entonces el árbol deja de ser un árbol binario de búsqueda puesto que viola el principio que dice que: “Todos los nodos del subárbol izquierdo del nodo T deben ser menores o iguales al nodo T” (en este caso 125 no es menor a 120). 120 140 87 43 99 130 22 65 93 135 56 También es posible observar que si se efectúa un recorrido inorden sobre un árbol de búsqueda se obtendrá una clasificación de los nodos en forma ascendente. El recorrido inorden del árbol de la figura anterior produce el siguiente resultado: 22-43-56-65-87-93-99-120-130-135-140
  • 5. ÁRBOL BINARIO INSERCIÓN EN UN ÁRBOL BINARIO DE BÚSQUEDA BORRADO EN UN ÁRBOL BINARIO DE BÚSQUEDA La inserción es una operación que se puede realizar eficientemente en un árbol binario de búsqueda. Consiste en eliminar un nodo del árbol sin violar los principios que definen justamente un árbol binario de búsqueda. PASOS QUE DEBEN REALIZARSE PARA INSERTAR UN ELEMENTO A UN ÁRBOL BINARIO DE BÚSQUEDA 1.Debe compararse la clave a insertar con la raíz del árbol. Si es mayor, debe avanzarse hacia el subárbol derecho. Si es menor, debe avanzarse hacia el subárbol izquierdo. 2. Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las siguientes condiciones: 2.1 El sub árbol derecho es igual a vacío, o el subárbol izquierdo es igual a vació; en cuyo caso se procederá a insertar el elemento en el lugar que le corresponde. 2.2 La clave que quiere insertarse es igual a la raíz del árbol; en cuyo caso no se realiza la inserción.
  • 6. PARA BORRAR UN ELEMENTO EN UN ARBOL SE DEBE DISTINGUIR LOS SIGUIENTES CASOS 1. Si el elemento a borrar es terminal u hoja, simplemente se suprime. 2. Si el elemento a borrar tiene un solo descendiente, entonces tiene que sustituirse por ese descendiente. 3. Si el elemento a borrar tiene los dos descendientes, entonces se tiene que sustituir por el nodo que se encuentra más a la izquierda en el subárbol derecho o por el nodo que se encuentra más a la derecha en el subárbol izquierdo. ARBOLES BALANCEADOS La búsqueda más eficiente se efectúa en un árbol binario balanceado. Desafortunadamente, la función Inserta no asegura que el árbol permanezca balanceado, el grado de balance depende del orden del orden en que son insertados los nodos en el árbol. Un árbol binario balanceado es un árbol binario en el cual las alturas de los dos sub árboles de todo nodo difieren a lo sumo en 1. El balance de un nodo en un árbol binario se define como la altura de su subárbol izquierdo menos la altura de su subárbol derecho. Los árboles balanceados también pueden usarse para una implantación eficiente de colas de prioridad.