SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Presentación




Estructuras de Datos No Lineales

          Mauricio Paletta
     INGENIERÍA EN INFORMÁTICA
                  Programación II




          Coordinación General de Pregrado
UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA

                               Programación II
Definición

Son aquellas que ocupan bloques de
memoria no continuos / lineales. Para lidiar
con el problema de la fragmentación y, sobre
todo del crecimiento dinámico.
Los bloques deben estar enlazados unos con
otros para poder “navegar” por la estructura,
es decir, tener acceso a otro(s) dato(s) a
partir del actual.


                        Programación II
Definición

Las ventajas de las estructuras lineales son
desventajas en las estructuras no lineales y
viceversa.
Para los enlaces se requiere utilizar
direcciones de memoria / apuntadores.
Dos tipos de estructuras:
  1) Listas enlazadas: simples, dobles.
  2) Árboles: binarios, genéricos, grafos.

                           Programación II
Listas enlazadas

Estructura formada por nodos que se enlazan
entre sí partiendo de un nodo inicial cuya
referencia lleva el nombre de cabecera y una
posible referencia al nodo final o cola.
Si cada nodo apunta sólo a su siguiente se
dice que la lista enlazada es simple. Si
también se incluye una referencia al nodo
anterior, entonces la lista enlazada es doble.


                         Programación II
Listas enlazadas

NOTA: La mejor forma de entender
 estructuras enlazadas es manejar el
 diagrama de bloques y sus respectivos
 enlaces.
 Perder o no manejar bien un enlace
 provoca la pérdida de información a partir
 del bloque correspondiente.



                        Programación II
Listas enlazadas


            Data    Data          …          Data     NULO



 Cabecera
                                      Cola




NULO
             Data          Data
                                  …            Data
                                                       NULO



Cabecera
                                      Cola




                                  Programación II
Listas enlazadas




          Programación II
Listas enlazadas




          Programación II
Listas enlazadas




          Programación II
Listas enlazadas




          Programación II
Listas enlazadas




          Programación II
Listas enlazadas




          Programación II
Conjunto




      Programación II
Grafo

Estructura formada por un conjunto de nodos
o vértices y un conjunto de aristas o lados.
A ser usados por cualquier problema donde
se observa un conjunto de objetos y
conexiones entre ellos: mapa de rutas de
transporte, red de computadoras,
organigrama, diagrama de actividades
/prelaciones, etc.


                        Programación II
Grafo




    Programación II
Grafo




    Programación II
Grafo




    Programación II
Árboles

Tipo particular de grafo acíclico (sin ciclos)
formada por nodos en la cual cada uno de
ellos puede apuntar a uno o varios otros
nodos.
De forma recursiva, cada nodo puede apuntar
a otro árbol (sub-árbol).
Entre los nodos se establece una relación de
ascendencia / descendencia.


                          Programación II
Árboles

Nodo padre: nodo que contiene un apuntador
a otros nodos.
Nodo hijo: nodo que es apuntado por otro
nodo.
Nodo raíz: sólo se comporta como padre; él
mismo no tiene padre (no es hijo de nadie).
Nodo hoja: sólo se comporta como hijo; él
mismo no tiene hijos (no es padre de nadie).

                        Programación II
Árboles


               Raíz               Padre /
                                ascendente
                                   de G
   Hijos /
descendiente
   s de B
                                             Subárbol




      Hojas

                           Programación II
Árboles

Orden: número potencial de hijos que puede
tener cada nodo.
Grado: número de hijos que tiene el nodo con
más hijos en el árbol.
Nivel de un nodo: nivel de descendencia o
distancia a la raíz. El nivel de la raíz es 0.
Altura: nivel del nodo de mayor nivel.


                          Programación II
Árboles

Tres tipos de recorridos:
  1) Preorden: primero raíz y luego hijos
     empezando por hijo izquierdo.
  2) Postorden: primero hijos empezando por hijo
     izquierdo y luego raíz.
  3) Inorden: primero hijo izquierdo, luego raíz y
     finalmente el resto de los hijos.




                            Programación II
Árbol binario

Tipo particular de árbol de orden 2 (todo nodo
tiene un máximo de dos hijos: izquierdo y
derecho).




                        Programación II
Árbol binario




         Programación II
Árbol binario




         Programación II
Árbol binario

Un ejemplo muy común es la representación
de expresiones.
                           Preorden:
                               *+12-34
                           Postorden:
                               12+34-*
                           Inorden:
                                1+2*3-4


                      Programación II
Árbol binario




         Programación II
Árbol binario

Otro ejemplo es el árbol binario de búsqueda
(para nodos con datos enteros o que
contenga una clave que pueda ser
comparada): para cada nodo, su valor
siempre es mayor que los valores de los
nodos de su descendencia del subárbol
izquierdo y menor que los valores de los
nodos de su descendencia del subárbol
derecho.

                        Programación II
Árbol binario




Buscar un elemento:
  • Si el árbol está vacío el elemento no está.
  • Si el elemento coincide con el de la raíz listo.
  • Si el elemento es menor que el de la raíz se busca en
    el subárbol izquierdo, caso contrario se busca en el
    subárbol derecho.

                               Programación II
Árbol binario

Agregar un elemento:
  • Si el elemento está en el árbol no se agrega.
  • Si el elemento no está, éste se inserta a continuación
    del último nodo visitado en la búsqueda, respetando la
    regla de construcción del árbol, a la izquierda o
    derecha del nodo dependiendo si el valor a agregar es
    menor o mayor respectivamente que el del nodo.




                               Programación II
Árbol binario

Suprimir un elemento:
  • Si el elemento no está en el árbol no se puede
    suprimir.
  • Si el elemento está y es un nodo hoja se borra
    directamente cuidando de que la referencia del nodo
    padre correspondiente se anule.
  • Si no es un nodo hoja, hay que buscar el nodo más a
    la izquierda del subárbol derecho o el más a la
    derecha del subárbol izquierdo e intercambiar los
    valores con el nodo (eliminación lógica).
  • El nodo intercambiado se elimina físicamente.


                              Programación II
Árbol binario




         Programación II
Árbol binario




         Programación II

Más contenido relacionado

La actualidad más candente

Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..NANO-06
 
Componentes de una base de datos
Componentes de una base de datosComponentes de una base de datos
Componentes de una base de datosSteven Nuñez
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoLutzo Guzmán
 
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
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datospepelebu1313
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pilajefer
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de DatosDARKGIRL93
 

La actualidad más candente (20)

Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
Componentes de una base de datos
Componentes de una base de datosComponentes de una base de datos
Componentes de una base de datos
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
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
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
 
Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Funcionamiento de un pila
Funcionamiento de un pilaFuncionamiento de un pila
Funcionamiento de un pila
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 

Similar a Estructuras no-lineales

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 ordenadosAngel Vázquez Patiño
 
Declaracion de arboles David Ratmiroff.pdf
Declaracion de arboles David Ratmiroff.pdfDeclaracion de arboles David Ratmiroff.pdf
Declaracion de arboles David Ratmiroff.pdfYuriratmiroff
 
Dylan_Medina_Arbol.pdf
Dylan_Medina_Arbol.pdfDylan_Medina_Arbol.pdf
Dylan_Medina_Arbol.pdfDylanMedina4
 
E.d. lineales y no lineales
E.d. lineales y no linealesE.d. lineales y no lineales
E.d. lineales y no linealesGaby Toriz
 
Estructura de Datos - Unidad IV: Estructuras no Lineales
Estructura de Datos - Unidad IV: Estructuras no LinealesEstructura de Datos - Unidad IV: Estructuras no Lineales
Estructura de Datos - Unidad IV: Estructuras no LinealesJosé Antonio Sandoval Acosta
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Rubi Veronica Chimal Cuxin
 
Estructura de dato unidad 4
Estructura de dato unidad 4Estructura de dato unidad 4
Estructura de dato unidad 4lenithoz
 
ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)Franklin Parrales Bravo
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binariosfavi_hola
 
Estructuras de tados
Estructuras de tadosEstructuras de tados
Estructuras de tadosthedinamicmac
 
Unidad cuatro estructura de datos
Unidad cuatro estructura de datosUnidad cuatro estructura de datos
Unidad cuatro estructura de datosRené Sosa Arana
 
Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5pootalex
 

Similar a Estructuras no-lineales (20)

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
 
Declaracion de arboles David Ratmiroff.pdf
Declaracion de arboles David Ratmiroff.pdfDeclaracion de arboles David Ratmiroff.pdf
Declaracion de arboles David Ratmiroff.pdf
 
Dylan_Medina_Arbol.pdf
Dylan_Medina_Arbol.pdfDylan_Medina_Arbol.pdf
Dylan_Medina_Arbol.pdf
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
E.d. lineales y no lineales
E.d. lineales y no linealesE.d. lineales y no lineales
E.d. lineales y no lineales
 
Estructura de Datos - Unidad IV: Estructuras no Lineales
Estructura de Datos - Unidad IV: Estructuras no LinealesEstructura de Datos - Unidad IV: Estructuras no Lineales
Estructura de Datos - Unidad IV: Estructuras no Lineales
 
tema4.pdf
tema4.pdftema4.pdf
tema4.pdf
 
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
 
Estructura de dato unidad 4
Estructura de dato unidad 4Estructura de dato unidad 4
Estructura de dato unidad 4
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Arboles.pdf
Arboles.pdfArboles.pdf
Arboles.pdf
 
Estructuras de tados
Estructuras de tadosEstructuras de tados
Estructuras de tados
 
arbol.pdf
arbol.pdfarbol.pdf
arbol.pdf
 
Unidad cuatro estructura de datos
Unidad cuatro estructura de datosUnidad cuatro estructura de datos
Unidad cuatro estructura de datos
 
Arboles02
Arboles02Arboles02
Arboles02
 
Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5
 

Más de karlalopezbello

03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetoskarlalopezbello
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2karlalopezbello
 
Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1karlalopezbello
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3karlalopezbello
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2karlalopezbello
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1karlalopezbello
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-karlalopezbello
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacionkarlalopezbello
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtualkarlalopezbello
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_karlalopezbello
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfilkarlalopezbello
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfilkarlalopezbello
 

Más de karlalopezbello (20)

03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
 
02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetos
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2
 
Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-
 
Didactica del chat
Didactica del chatDidactica del chat
Didactica del chat
 
Didactica del foro
Didactica del foroDidactica del foro
Didactica del foro
 
Guia completa de_moodle
Guia completa de_moodleGuia completa de_moodle
Guia completa de_moodle
 
Publicacion de material
Publicacion de materialPublicacion de material
Publicacion de material
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacion
 
Actividades en moodle
Actividades en moodleActividades en moodle
Actividades en moodle
 
Plataforma moodle
Plataforma moodlePlataforma moodle
Plataforma moodle
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtual
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Transparencias7
Transparencias7Transparencias7
Transparencias7
 

Estructuras no-lineales

  • 1. Presentación Estructuras de Datos No Lineales Mauricio Paletta INGENIERÍA EN INFORMÁTICA Programación II Coordinación General de Pregrado UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA Programación II
  • 2. Definición Son aquellas que ocupan bloques de memoria no continuos / lineales. Para lidiar con el problema de la fragmentación y, sobre todo del crecimiento dinámico. Los bloques deben estar enlazados unos con otros para poder “navegar” por la estructura, es decir, tener acceso a otro(s) dato(s) a partir del actual. Programación II
  • 3. Definición Las ventajas de las estructuras lineales son desventajas en las estructuras no lineales y viceversa. Para los enlaces se requiere utilizar direcciones de memoria / apuntadores. Dos tipos de estructuras: 1) Listas enlazadas: simples, dobles. 2) Árboles: binarios, genéricos, grafos. Programación II
  • 4. Listas enlazadas Estructura formada por nodos que se enlazan entre sí partiendo de un nodo inicial cuya referencia lleva el nombre de cabecera y una posible referencia al nodo final o cola. Si cada nodo apunta sólo a su siguiente se dice que la lista enlazada es simple. Si también se incluye una referencia al nodo anterior, entonces la lista enlazada es doble. Programación II
  • 5. Listas enlazadas NOTA: La mejor forma de entender estructuras enlazadas es manejar el diagrama de bloques y sus respectivos enlaces. Perder o no manejar bien un enlace provoca la pérdida de información a partir del bloque correspondiente. Programación II
  • 6. Listas enlazadas Data Data … Data NULO Cabecera Cola NULO Data Data … Data NULO Cabecera Cola Programación II
  • 7. Listas enlazadas Programación II
  • 8. Listas enlazadas Programación II
  • 9. Listas enlazadas Programación II
  • 10. Listas enlazadas Programación II
  • 11. Listas enlazadas Programación II
  • 12. Listas enlazadas Programación II
  • 13. Conjunto Programación II
  • 14. Grafo Estructura formada por un conjunto de nodos o vértices y un conjunto de aristas o lados. A ser usados por cualquier problema donde se observa un conjunto de objetos y conexiones entre ellos: mapa de rutas de transporte, red de computadoras, organigrama, diagrama de actividades /prelaciones, etc. Programación II
  • 15. Grafo Programación II
  • 16. Grafo Programación II
  • 17. Grafo Programación II
  • 18. Árboles Tipo particular de grafo acíclico (sin ciclos) formada por nodos en la cual cada uno de ellos puede apuntar a uno o varios otros nodos. De forma recursiva, cada nodo puede apuntar a otro árbol (sub-árbol). Entre los nodos se establece una relación de ascendencia / descendencia. Programación II
  • 19. Árboles Nodo padre: nodo que contiene un apuntador a otros nodos. Nodo hijo: nodo que es apuntado por otro nodo. Nodo raíz: sólo se comporta como padre; él mismo no tiene padre (no es hijo de nadie). Nodo hoja: sólo se comporta como hijo; él mismo no tiene hijos (no es padre de nadie). Programación II
  • 20. Árboles Raíz Padre / ascendente de G Hijos / descendiente s de B Subárbol Hojas Programación II
  • 21. Árboles Orden: número potencial de hijos que puede tener cada nodo. Grado: número de hijos que tiene el nodo con más hijos en el árbol. Nivel de un nodo: nivel de descendencia o distancia a la raíz. El nivel de la raíz es 0. Altura: nivel del nodo de mayor nivel. Programación II
  • 22. Árboles Tres tipos de recorridos: 1) Preorden: primero raíz y luego hijos empezando por hijo izquierdo. 2) Postorden: primero hijos empezando por hijo izquierdo y luego raíz. 3) Inorden: primero hijo izquierdo, luego raíz y finalmente el resto de los hijos. Programación II
  • 23. Árbol binario Tipo particular de árbol de orden 2 (todo nodo tiene un máximo de dos hijos: izquierdo y derecho). Programación II
  • 24. Árbol binario Programación II
  • 25. Árbol binario Programación II
  • 26. Árbol binario Un ejemplo muy común es la representación de expresiones. Preorden: *+12-34 Postorden: 12+34-* Inorden: 1+2*3-4 Programación II
  • 27. Árbol binario Programación II
  • 28. Árbol binario Otro ejemplo es el árbol binario de búsqueda (para nodos con datos enteros o que contenga una clave que pueda ser comparada): para cada nodo, su valor siempre es mayor que los valores de los nodos de su descendencia del subárbol izquierdo y menor que los valores de los nodos de su descendencia del subárbol derecho. Programación II
  • 29. Árbol binario Buscar un elemento: • Si el árbol está vacío el elemento no está. • Si el elemento coincide con el de la raíz listo. • Si el elemento es menor que el de la raíz se busca en el subárbol izquierdo, caso contrario se busca en el subárbol derecho. Programación II
  • 30. Árbol binario Agregar un elemento: • Si el elemento está en el árbol no se agrega. • Si el elemento no está, éste se inserta a continuación del último nodo visitado en la búsqueda, respetando la regla de construcción del árbol, a la izquierda o derecha del nodo dependiendo si el valor a agregar es menor o mayor respectivamente que el del nodo. Programación II
  • 31. Árbol binario Suprimir un elemento: • Si el elemento no está en el árbol no se puede suprimir. • Si el elemento está y es un nodo hoja se borra directamente cuidando de que la referencia del nodo padre correspondiente se anule. • Si no es un nodo hoja, hay que buscar el nodo más a la izquierda del subárbol derecho o el más a la derecha del subárbol izquierdo e intercambiar los valores con el nodo (eliminación lógica). • El nodo intercambiado se elimina físicamente. Programación II
  • 32. Árbol binario Programación II
  • 33. Árbol binario Programación II