SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Unidad IV
Tema 8: Arboles Binarios
Profesor: Jorge Escalona / Tobías Bolívar
Email: escaljorge@gmail.com / tobiasbolivar@gmail.com
Página Web: http://estructuradatos.tripod.com
Arboles - Definición
Un grafo conectado, aciclico, no dirigido T = (V, E).
| E | = | V | - 1
Mínimamente conectado --- T es desconectado si cualquier arista es removida.
Máximamente acíclico --- T contiene un ciclo si culquier arista es incluida.
Arboles - Introducción
Estructuras de datos altamente eficientes:
• Inserciones y eliminaciones tienen un tiempo de ejecución
menor a una lista Enlazada O(n=) lg n.
• Algoritmos de Búsquedas con tiempos de ejecución igual a un
arreglo ordenado O(n) = lg n.
Terminología Básica
a
b d
e f
i j
g
h
c
k
raiz, ancestro
padre
nodos
hijo hijo
descendiente
Hoja
(sin hijos )
e, i, k, g, h
son hojas
Nodo interno
hermano
Sub-arbol
a
b d
e f
i j
g
h
c
k
raiz
Un nodo y todos
sus descedientes.
Caminos de un Arbol
a
c
b
e
f
d
g
j
i
h
Camino 1 Camino 2
Camino 1: { a, b, f, j }
Camino 2: { d, i }
Existe un único camino
desde cualquier nodo a sus
descendientes.
Altura y Profundidad
7
3 10
8
4
12
16 5
211
9
altura = 4 nivel 0
nivel 1
nivel 2
nivel 3
nivel 4
Altura del nodo = 2
Grado
7
3 10
8
4
12
16 5
211
9
El número de hijos
de un nodo x es
llamado el grado de x.
grado = 3
grado = 1 grado = 0
Arboles Binarios
Cada nodo tiene como máximo dos hijos.
Hijo izquierdo:el nodo hijo a la izquierda.
Hijo derecho: el nodo hijo a la derecha.
r
a
a) Es vacío
b) T consiste de tres subconjuntos separados:
1) un nodo raiz
2) un subarbol binario izquierdo
3) un subarbol binario derecho
Un conjunto de nodos T es un árbol binario si:
a
d
b
c
f
e
Subarbol izquierdo
Subarbol derecho
Arboles binarios llenos y completos
Arbol binario lleno: Arbol binario completo:
Cada nodo es una hoja Todas las hojas tienen la misma
o tiene grado igual a 2. profundidad y todos los nodos
internos tienen grado 2.
7
3
8 12
10
128
103
73
11 2
N° Nodos = 2h+1 -1
TDA Arbol Binario
a
b
fe
c
a rightleft
left right
left right
right
rightleft
fe
cb
left
g
left right
NULL
g
Recorrido InOrden
a
b
c
inOrden(A)
1.Llamar inOrden(B)
2. Visitar A
3. Llamar inOrden(C)
inOrden(B)
1.Llamar inOrden(null)
2. Visitar B
3. Llamar inOrden(null)
inOrden(C)
1.Llamar inOrden(null)
2. Visitar C
3. Llamar inOrden(null)
inOrden(null)
Retornar
inOrden(null)
Retornar
inOrden(null)
Retornar
inOrden(null)
Retornar
Recorrido PreOrden
a
b
c
preOrden(A)
1. Visitar A
2.Llamar preOrden(B)
3.Llamar preOrden(C)
preOrden(B)
1. Visitar B
2.Llamar preOrden(null)
3.Llamar preOrden(null)
preOrden(C)
1. Visitar C
2.Llamar preOrden(null)
3.Llamar preOrden(null)
preOrden(null)
Retornar
preOrden(null)
Retornar
preOrden(null)
Retornar
preOrden(null)
Retornar
Recorrido PostOrden
a
b
c
postOrden(A)
1.Llamar postOrden(B)
2.Llamar postOrden(C)
3.Visitar A
postOrden(B)
1.Llamar postOrden(null)
2.Llamar postOrden(null)
3.Visitar B
preOrden(C)
1.Llamar postOrden(null)
2.Llamar postOrden(null)
3.Visitar C
postOrden(null)
Retornar
postOrden(null)
Retornar
postOrden(null)
Retornar
postOrden(null)
Retornar
Arbol binario de búsqueda
15
10
6
20
12
142 8
2518
9
Elementos menores a un
nodo están en la izquierda
Elementos menores a un
nodo están en la izquierda
Elementos mayores a un
nodo están a la derecha
Elementos mayores a un
nodo están a la derecha
ABB: Buscar un elemento
15
10
6
20
12
142 8
2518
9
9 < 15
9 < 10
9 > 6
9 > 9
9 == 9 T(n) = h +1 = O(lg n)T(n) = h +1 = O(lg n)
ABB: Insertar un elemento
15
10
6 12
15
10
6 12
14null
a) Antes de insercióna) Antes de inserción b) Después de inserciónb) Después de inserción
ABB: Eliminar un elemento
Casos:
1) El nodo a ser eliminado es una hoja (no tiene hijos)
2) El nodo a ser eliminado tiene un hijo
3) El nodo a ser eliminado tiene dos hijos
Casos:
1) El nodo a ser eliminado es una hoja (no tiene hijos)
2) El nodo a ser eliminado tiene un hijo
3) El nodo a ser eliminado tiene dos hijos
ABB: Eliminar un elemento
15
10
6 12
null
a) Antes de eliminara) Antes de eliminar
Elemento a elimiar = 12
15
10
6 12
Esperando
garbage
collection
b) Después de eliminarb) Después de eliminar
Caso 1: El nodo es una hojaCaso 1: El nodo es una hoja
nodo a ser
eliminado
ABB: Eliminar un elemento
15
10
6 12
a) Antes de eliminara) Antes de eliminar
nodo a ser
eliminado
b) Después de eliminarb) Después de eliminar
Caso 2: El nodo tiene un hijoCaso 2: El nodo tiene un hijo
19
14
15
10
6 19
14
ABB: Eliminar un elemento
15
10
6 14
a) Antes de eliminara) Antes de eliminar
nodo a ser
eliminado
b) Después de eliminarb) Después de eliminar
Caso 3: El nodo tiene dos hijosCaso 3: El nodo tiene dos hijos
1912
15
12
6 14?
?
sucesor de 10
19
ABB: Eliminar un elemento
10
6 20
a) El sucesor es el hijo derecho del nodoa) El sucesor es el hijo derecho del nodo
Encontrar el
sucesor de
este nodo
b) El sucesor es el descendiente más a la
izquierda del hijo derecho del nodo
b) El sucesor es el descendiente más a la
izquierda del hijo derecho del nodo
Caso 3: Encontrar el sucesorCaso 3: Encontrar el sucesor
30no tiene
hijo izquierdo
ir al hijo
derecho
sucesor
10
6 20
Encontrar el
sucesor de
este nodo
30
ir al hijo
derecho
12
14
no tiene
hijo izquierdo
ir al hijo
izquierdo
15
18
ir al hijo
izquierdo
sucesor
ABB: Eliminar un elemento
10
6 20
a) Antes de eliminara) Antes de eliminar
Caso 3: Eliminar con el sucesor de hijo derechoCaso 3: Eliminar con el sucesor de hijo derecho
30no existe
nodo a ser
eliminado
sucesor
5 padre
nodo a eliminar
paso 1
paso 2
20
6 30
5
paso 1
paso 2
b) Después de eliminarb) Después de eliminar
1) padre.der = sucesor;
2) sucesor.izq = nodoEliminar.izq;
ABB: Eliminar un elemento
a) Antes de eliminara) Antes de eliminar
Caso 3: Eliminar con el sucesor de hijo más a la izquierda del hijo derechoCaso 3: Eliminar con el sucesor de hijo más a la izquierda del hijo derecho
a) Después de eliminara) Después de eliminar
10
no existe
20
3015
18
6
5 padre
nodo a eliminar
paso 3
paso 4 paso 2
paso 1
paso 1
nodo a eliminar
padre del
sucesor
sucesor
hijo derecho del sucesor
15
20
3018
6
5
paso 3
paso 4 paso 2
paso 1
1) sucesorPadre.izq = sucesor.der;
2) sucesor.der = nodoEliminar.der;
3) padre.der = sucesor;
4) sucesor.izq = actual.izq;

Más contenido relacionado

La actualidad más candente

Lista Doblemente Enlazada
Lista Doblemente EnlazadaLista Doblemente Enlazada
Lista Doblemente Enlazadayordy Macoto
 
Base de datos modelo entidad relacion
Base de datos modelo entidad relacionBase de datos modelo entidad relacion
Base de datos modelo entidad relacionFco Javier Rodriguez
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridadkamui002
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
Compuertas Logicas
Compuertas LogicasCompuertas Logicas
Compuertas Logicasguest89b1332
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y NodosBoris Salleg
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos josecuartas
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaDaniel Gómez
 
Electrónica digital: Codificadores y decodificadores
Electrónica digital: Codificadores y decodificadores Electrónica digital: Codificadores y decodificadores
Electrónica digital: Codificadores y decodificadores SANTIAGO PABLO ALBERTO
 
Complemento a 1 y a 2
Complemento a 1 y a 2Complemento a 1 y a 2
Complemento a 1 y a 2Jossue Jossue
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalizaciónMarcelo Herrera
 
Herencia en C++
Herencia en C++Herencia en C++
Herencia en C++joel1386
 

La actualidad más candente (20)

Lista Doblemente Enlazada
Lista Doblemente EnlazadaLista Doblemente Enlazada
Lista Doblemente Enlazada
 
Base de datos modelo entidad relacion
Base de datos modelo entidad relacionBase de datos modelo entidad relacion
Base de datos modelo entidad relacion
 
Clase2
Clase2Clase2
Clase2
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridad
 
Listas
ListasListas
Listas
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
Compuertas Logicas
Compuertas LogicasCompuertas Logicas
Compuertas Logicas
 
C11.1. árboles
C11.1. árbolesC11.1. árboles
C11.1. árboles
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Colas
ColasColas
Colas
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Ciclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - AlgoritmiaCiclos Java - NetsBeans - Algoritmia
Ciclos Java - NetsBeans - Algoritmia
 
Tipos De Datos Abstractos Colas
Tipos De Datos Abstractos ColasTipos De Datos Abstractos Colas
Tipos De Datos Abstractos Colas
 
JPA en NetBeans
JPA en NetBeansJPA en NetBeans
JPA en NetBeans
 
Electrónica digital: Codificadores y decodificadores
Electrónica digital: Codificadores y decodificadores Electrónica digital: Codificadores y decodificadores
Electrónica digital: Codificadores y decodificadores
 
Complemento a 1 y a 2
Complemento a 1 y a 2Complemento a 1 y a 2
Complemento a 1 y a 2
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 
Herencia en C++
Herencia en C++Herencia en C++
Herencia en C++
 

Destacado

Destacado (7)

Obj 3 modelo osi
Obj 3   modelo osiObj 3   modelo osi
Obj 3 modelo osi
 
Capas modelo osi
Capas modelo osiCapas modelo osi
Capas modelo osi
 
Capas del Modelo OSI y sus Funciones
Capas del Modelo OSI y sus FuncionesCapas del Modelo OSI y sus Funciones
Capas del Modelo OSI y sus Funciones
 
MODELO OSI PDU
MODELO OSI PDUMODELO OSI PDU
MODELO OSI PDU
 
Modelo osi y tcp ip
Modelo osi y tcp ipModelo osi y tcp ip
Modelo osi y tcp ip
 
Protocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osiProtocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osi
 
Protocolos de las capas del modelo OSI
Protocolos de las capas del modelo OSIProtocolos de las capas del modelo OSI
Protocolos de las capas del modelo OSI
 

Similar a Tema8

Similar a Tema8 (20)

Árboles Binarios y Grafos
Árboles Binarios  y GrafosÁrboles Binarios  y Grafos
Árboles Binarios y Grafos
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
 
Arboles
Arboles Arboles
Arboles
 
3 estructuras no lineales estáticas y dinámicas
3  estructuras no lineales estáticas y dinámicas3  estructuras no lineales estáticas y dinámicas
3 estructuras no lineales estáticas y dinámicas
 
Arboles02
Arboles02Arboles02
Arboles02
 
04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles
 
Arboles.pdf
Arboles.pdfArboles.pdf
Arboles.pdf
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
Abinariosbusqueda
AbinariosbusquedaAbinariosbusqueda
Abinariosbusqueda
 
Sustentacion arboles
Sustentacion arbolesSustentacion arboles
Sustentacion arboles
 
12. Arboles.ppt
12. Arboles.ppt12. Arboles.ppt
12. Arboles.ppt
 
Árboles Binarios
Árboles BinariosÁrboles Binarios
Árboles Binarios
 
COMPUERTAS_logicasssssssssssss [Autoguardado].ppt
COMPUERTAS_logicasssssssssssss [Autoguardado].pptCOMPUERTAS_logicasssssssssssss [Autoguardado].ppt
COMPUERTAS_logicasssssssssssss [Autoguardado].ppt
 
COMPUERTASlogicasssssssssssssssssssss.ppt
COMPUERTASlogicasssssssssssssssssssss.pptCOMPUERTASlogicasssssssssssssssssssss.ppt
COMPUERTASlogicasssssssssssssssssssss.ppt
 
2.4.3 Operaciones Básicas.pptx
2.4.3 Operaciones Básicas.pptx2.4.3 Operaciones Básicas.pptx
2.4.3 Operaciones Básicas.pptx
 
ECUACIONES II.doc
ECUACIONES II.docECUACIONES II.doc
ECUACIONES II.doc
 
(605149294) ensayo psu con_respuesta_matematica_imprimibles_n_1_40014_2015080...
(605149294) ensayo psu con_respuesta_matematica_imprimibles_n_1_40014_2015080...(605149294) ensayo psu con_respuesta_matematica_imprimibles_n_1_40014_2015080...
(605149294) ensayo psu con_respuesta_matematica_imprimibles_n_1_40014_2015080...
 
Cap 002
Cap 002Cap 002
Cap 002
 
arboles binarios- recorrido
arboles binarios- recorridoarboles binarios- recorrido
arboles binarios- recorrido
 

Más de Pedro Sánchez

Más de Pedro Sánchez (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Guión didáctico
Guión didácticoGuión didáctico
Guión didáctico
 
Tarjeta Madre
Tarjeta MadreTarjeta Madre
Tarjeta Madre
 
Importancia de las redes sociales en la Educación
Importancia de las redes sociales en la EducaciónImportancia de las redes sociales en la Educación
Importancia de las redes sociales en la Educación
 
Evolucion de la web
Evolucion de la webEvolucion de la web
Evolucion de la web
 
Plagio en Internet Grupo los Integradores
Plagio en Internet Grupo los IntegradoresPlagio en Internet Grupo los Integradores
Plagio en Internet Grupo los Integradores
 
Tema7
Tema7Tema7
Tema7
 
Tema6
Tema6Tema6
Tema6
 
Tema5
Tema5Tema5
Tema5
 
Tema4
Tema4Tema4
Tema4
 
Tema3
Tema3Tema3
Tema3
 
Tema2
Tema2Tema2
Tema2
 
Tema1 (2)
Tema1 (2)Tema1 (2)
Tema1 (2)
 
Obj 10 capa 6 - presentacion
Obj 10   capa 6 - presentacionObj 10   capa 6 - presentacion
Obj 10 capa 6 - presentacion
 
Obj 9 capa 5 - sesion
Obj 9   capa 5 - sesionObj 9   capa 5 - sesion
Obj 9 capa 5 - sesion
 
Obj 8 capa 4 - transporte
Obj 8   capa 4 - transporteObj 8   capa 4 - transporte
Obj 8 capa 4 - transporte
 
Obj 7.4 capa 3 - red - router
Obj 7.4   capa 3 - red - router Obj 7.4   capa 3 - red - router
Obj 7.4 capa 3 - red - router
 
Obj 7.3 capa 3 - red - sub redes
Obj 7.3   capa 3 - red - sub redes Obj 7.3   capa 3 - red - sub redes
Obj 7.3 capa 3 - red - sub redes
 
Obj 7.2 capa 3 - red - ip clase d-e sub redes
Obj 7.2   capa 3 - red - ip clase d-e sub redes Obj 7.2   capa 3 - red - ip clase d-e sub redes
Obj 7.2 capa 3 - red - ip clase d-e sub redes
 
Obj 7.1 capa 3 - red - direccionamiento ip
Obj 7.1   capa 3 - red - direccionamiento ipObj 7.1   capa 3 - red - direccionamiento ip
Obj 7.1 capa 3 - red - direccionamiento ip
 

Último

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (10)

Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Tema8

  • 1. Unidad IV Tema 8: Arboles Binarios Profesor: Jorge Escalona / Tobías Bolívar Email: escaljorge@gmail.com / tobiasbolivar@gmail.com Página Web: http://estructuradatos.tripod.com
  • 2. Arboles - Definición Un grafo conectado, aciclico, no dirigido T = (V, E). | E | = | V | - 1 Mínimamente conectado --- T es desconectado si cualquier arista es removida. Máximamente acíclico --- T contiene un ciclo si culquier arista es incluida.
  • 3. Arboles - Introducción Estructuras de datos altamente eficientes: • Inserciones y eliminaciones tienen un tiempo de ejecución menor a una lista Enlazada O(n=) lg n. • Algoritmos de Búsquedas con tiempos de ejecución igual a un arreglo ordenado O(n) = lg n.
  • 4. Terminología Básica a b d e f i j g h c k raiz, ancestro padre nodos hijo hijo descendiente Hoja (sin hijos ) e, i, k, g, h son hojas Nodo interno hermano
  • 5. Sub-arbol a b d e f i j g h c k raiz Un nodo y todos sus descedientes.
  • 6. Caminos de un Arbol a c b e f d g j i h Camino 1 Camino 2 Camino 1: { a, b, f, j } Camino 2: { d, i } Existe un único camino desde cualquier nodo a sus descendientes.
  • 7. Altura y Profundidad 7 3 10 8 4 12 16 5 211 9 altura = 4 nivel 0 nivel 1 nivel 2 nivel 3 nivel 4 Altura del nodo = 2
  • 8. Grado 7 3 10 8 4 12 16 5 211 9 El número de hijos de un nodo x es llamado el grado de x. grado = 3 grado = 1 grado = 0
  • 9. Arboles Binarios Cada nodo tiene como máximo dos hijos. Hijo izquierdo:el nodo hijo a la izquierda. Hijo derecho: el nodo hijo a la derecha. r a a) Es vacío b) T consiste de tres subconjuntos separados: 1) un nodo raiz 2) un subarbol binario izquierdo 3) un subarbol binario derecho Un conjunto de nodos T es un árbol binario si: a d b c f e Subarbol izquierdo Subarbol derecho
  • 10. Arboles binarios llenos y completos Arbol binario lleno: Arbol binario completo: Cada nodo es una hoja Todas las hojas tienen la misma o tiene grado igual a 2. profundidad y todos los nodos internos tienen grado 2. 7 3 8 12 10 128 103 73 11 2 N° Nodos = 2h+1 -1
  • 11. TDA Arbol Binario a b fe c a rightleft left right left right right rightleft fe cb left g left right NULL g
  • 12. Recorrido InOrden a b c inOrden(A) 1.Llamar inOrden(B) 2. Visitar A 3. Llamar inOrden(C) inOrden(B) 1.Llamar inOrden(null) 2. Visitar B 3. Llamar inOrden(null) inOrden(C) 1.Llamar inOrden(null) 2. Visitar C 3. Llamar inOrden(null) inOrden(null) Retornar inOrden(null) Retornar inOrden(null) Retornar inOrden(null) Retornar
  • 13. Recorrido PreOrden a b c preOrden(A) 1. Visitar A 2.Llamar preOrden(B) 3.Llamar preOrden(C) preOrden(B) 1. Visitar B 2.Llamar preOrden(null) 3.Llamar preOrden(null) preOrden(C) 1. Visitar C 2.Llamar preOrden(null) 3.Llamar preOrden(null) preOrden(null) Retornar preOrden(null) Retornar preOrden(null) Retornar preOrden(null) Retornar
  • 14. Recorrido PostOrden a b c postOrden(A) 1.Llamar postOrden(B) 2.Llamar postOrden(C) 3.Visitar A postOrden(B) 1.Llamar postOrden(null) 2.Llamar postOrden(null) 3.Visitar B preOrden(C) 1.Llamar postOrden(null) 2.Llamar postOrden(null) 3.Visitar C postOrden(null) Retornar postOrden(null) Retornar postOrden(null) Retornar postOrden(null) Retornar
  • 15. Arbol binario de búsqueda 15 10 6 20 12 142 8 2518 9 Elementos menores a un nodo están en la izquierda Elementos menores a un nodo están en la izquierda Elementos mayores a un nodo están a la derecha Elementos mayores a un nodo están a la derecha
  • 16. ABB: Buscar un elemento 15 10 6 20 12 142 8 2518 9 9 < 15 9 < 10 9 > 6 9 > 9 9 == 9 T(n) = h +1 = O(lg n)T(n) = h +1 = O(lg n)
  • 17. ABB: Insertar un elemento 15 10 6 12 15 10 6 12 14null a) Antes de insercióna) Antes de inserción b) Después de inserciónb) Después de inserción
  • 18. ABB: Eliminar un elemento Casos: 1) El nodo a ser eliminado es una hoja (no tiene hijos) 2) El nodo a ser eliminado tiene un hijo 3) El nodo a ser eliminado tiene dos hijos Casos: 1) El nodo a ser eliminado es una hoja (no tiene hijos) 2) El nodo a ser eliminado tiene un hijo 3) El nodo a ser eliminado tiene dos hijos
  • 19. ABB: Eliminar un elemento 15 10 6 12 null a) Antes de eliminara) Antes de eliminar Elemento a elimiar = 12 15 10 6 12 Esperando garbage collection b) Después de eliminarb) Después de eliminar Caso 1: El nodo es una hojaCaso 1: El nodo es una hoja nodo a ser eliminado
  • 20. ABB: Eliminar un elemento 15 10 6 12 a) Antes de eliminara) Antes de eliminar nodo a ser eliminado b) Después de eliminarb) Después de eliminar Caso 2: El nodo tiene un hijoCaso 2: El nodo tiene un hijo 19 14 15 10 6 19 14
  • 21. ABB: Eliminar un elemento 15 10 6 14 a) Antes de eliminara) Antes de eliminar nodo a ser eliminado b) Después de eliminarb) Después de eliminar Caso 3: El nodo tiene dos hijosCaso 3: El nodo tiene dos hijos 1912 15 12 6 14? ? sucesor de 10 19
  • 22. ABB: Eliminar un elemento 10 6 20 a) El sucesor es el hijo derecho del nodoa) El sucesor es el hijo derecho del nodo Encontrar el sucesor de este nodo b) El sucesor es el descendiente más a la izquierda del hijo derecho del nodo b) El sucesor es el descendiente más a la izquierda del hijo derecho del nodo Caso 3: Encontrar el sucesorCaso 3: Encontrar el sucesor 30no tiene hijo izquierdo ir al hijo derecho sucesor 10 6 20 Encontrar el sucesor de este nodo 30 ir al hijo derecho 12 14 no tiene hijo izquierdo ir al hijo izquierdo 15 18 ir al hijo izquierdo sucesor
  • 23. ABB: Eliminar un elemento 10 6 20 a) Antes de eliminara) Antes de eliminar Caso 3: Eliminar con el sucesor de hijo derechoCaso 3: Eliminar con el sucesor de hijo derecho 30no existe nodo a ser eliminado sucesor 5 padre nodo a eliminar paso 1 paso 2 20 6 30 5 paso 1 paso 2 b) Después de eliminarb) Después de eliminar 1) padre.der = sucesor; 2) sucesor.izq = nodoEliminar.izq;
  • 24. ABB: Eliminar un elemento a) Antes de eliminara) Antes de eliminar Caso 3: Eliminar con el sucesor de hijo más a la izquierda del hijo derechoCaso 3: Eliminar con el sucesor de hijo más a la izquierda del hijo derecho a) Después de eliminara) Después de eliminar 10 no existe 20 3015 18 6 5 padre nodo a eliminar paso 3 paso 4 paso 2 paso 1 paso 1 nodo a eliminar padre del sucesor sucesor hijo derecho del sucesor 15 20 3018 6 5 paso 3 paso 4 paso 2 paso 1 1) sucesorPadre.izq = sucesor.der; 2) sucesor.der = nodoEliminar.der; 3) padre.der = sucesor; 4) sucesor.izq = actual.izq;