SlideShare una empresa de Scribd logo
1 de 44
Descargar para leer sin conexión
ÁRBOLES
1
DEFINICIÓN
Un árbol dirigido es una estructura:
• Jerárquica porque los componentes están a distinto nivel.
• Organizada porque importa la forma en que esté dispuesto el
contenido.
• Dinámica porque su forma, tamaño y contenido pueden variar
durante la ejecución.
Un árbol puede ser:
• vacío,
• Una raíz + subárboles. 2
REPRESENTACIÓN DE UN ÁRBOL.
• Mediante diagramas de Venn
• Mediante círculos y flechas
• Mediante paréntesis anidados:
( a ( b (e,f), c, d ) )
3
a
b c d
e
f a
c d
b
e f
CONCEPTOS BÁSICOS
• Si hay un camino de A hasta B, se dice que A es antecesor de B, y que
B es sucesor de A.
• Padre es el antecesor inmediato de un nodo
• Hijo, cualquiera de sus descendientes inmediatos.
• Descendiente de un nodo, es cualquier sucesor de dicho nodo.
• Hermano de un nodo, es otro nodo con el mismo padre.
• Generación, es un conjunto de nodos con la misma profundidad.
4
CONCEPTOS BÁSICOS (CONT.)
• Raíz es el nodo que no tiene ningún predecesor (sin padre).
• Hoja es el nodo que no tiene sucesores (sin hijos) (Terminal). Los que
tienen predecesor y sucesor se llaman nodos interiores.
• Rama es cualquier camino del árbol.
• Bosque es un conjunto de árboles desconectados.
• Nivel o profundidad de un nodo, es la longitud del camino desde la
raíz hasta ese nodo.
El nivel puede definirse como 0 para la raíz y nivel
(predecesor)+1 para los demás nodos. 5
CONCEPTOS BÁSICOS (CONT.)
• Los nodos de la misma generación tienen el mismo nivel.
• Grado de un nodo, es el número de flechas que salen de ese nodo
(hijos). El número de las que entran siempre es uno.
• Grado de un árbol, es el mayor grado que puede hallarse en sus
nodos.
• Longitud del camino entre 2 nodos: es el número de arcos que hay
entre ellos.
6
CONCEPTOS BÁSICOS (CONT.)
7
Raíz
hijo
Hermano
Padre
hoja
Subárbol
Nivel de profundidad = 7
Grado de un nodo = 3
Grado del árbol = 3
TIPOS DE ÁRBOLES
Un árbol ordenado: Es aquel en el que las ramas de los nodos
están ordenadas.
• Los de grado 2 se llaman árboles binarios.
• Cada árbol binario tiene un subárbol izquierda y subárbol
derecha.
8
+
- ^
3.5
/
B
A
D
C
TIPOS DE ÁRBOLES (CONT.)
Árboles de expresión
• Representan un orden de ejecución
9
+
+
*
B
A * E
D
C
*
+ -
7 12 9
(A* B) + C * D + E (7 + 12) * (-9) → -171
TIPOS DE ÁRBOLES (CONT.)
• Árboles similares: Los que tienen la misma estructura (forma)
• Árboles Equivalentes: Son los árboles similares y sus nodos contienen la
misma información.
• Árboles n-ario: Es un árbol ordenado cuyos nodos tiene N subárboles, y
donde cualquier número de subárboles puede ser árboles vacíos 10
1
2 5
6
4
3
9
8
7
a
b e
f
d
c
i
h
g
TIPOS DE ÁRBOLES (CONT.)
Árbol binario completo:
• Es un árbol en el que todos sus nodos, excepto los del ultimo nivel, tienen
dos hijos.
• Número de nodos en un árbol binario completo = 2h –1 (en el ejemplo h
= 4, → 15) esto nos ayuda a calcular el nivel de árbol necesario para
almacenar los datos de una aplicación.
11
ÁRBOLES BINARIOS
DE BÚSQUEDA (ABB)
12
ÁRBOLES BINARIOS DE BÚSQUEDA
• Un árbol es un ABB si éste es binario y
sus nodos son subárboles de
búsqueda binarios y contienen
información ordenada de tal que
todos los elementos a la izquierda de
la raíz son menores a la raíz y todos
lo elementos a la derecha de la raíz
son mayores a la raíz.
13
CARACTERÍSTICAS DE UN ABB
• Todos los nodos a la izquierda son menores al padre.
• Todos los nodos a la derecha son mayores al padre.
• Y solo pueden tener 2 hijos a lo mucho.
14
50
95
90
110
110
88
85
100
105
102
68
34
40
45
26
42
8
CONVERSIÓN DE UN ÁRBOL GENERAL EN UN
ÁRBOL BINARIO
• Los hermanos se enlazan en forma horizontal (lineal)
• Se enlaza en forma vertical el padre con el hijo que se encuentra mas a la
izquierda y se elimina el enlace de este padre con los demás hijos.
• Se rota el diagrama resultante 45 grados hacia la izquierda.
15
CONVERSIÓN DE UN ÁRBOL GENERAL EN
UN ÁRBOL BINARIO (CONT.)
16
A
B D
C
E F G H I J K
L M N O
A
M
B C D
F
E G I
H K
J
O
N
L
=
queda así
O
A
M
B
C
D
F
E
G
I
H
K
J
N
L
REPRESENTACIÓN DE UN ÁRBOL BINARIO EN
LA MEMORIA.
• Cada noto tiene la siguiente forma:
17
Raíz
R
A
B C
D
E
izq info der
CLASE NODO DE UN ABB
Class Nodo{
nodo izq;
nodo der;
int dato;
}
18
OPERACIONES SOBRE UN ÁRBOL
• Recorrer árbol
• Preorden
• Inorden
• Postorden
• Inserción nodo
• Eliminar nodo
• Buscar nodo con información
• Sumar los nodos
• Calcular profundidad del árbol
• Contar nodos
• Contar hojas.
19
RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA
BINARIA (ABB)
• Recorrido en preorden (prefijo)
• Visita la raíz.
• Recorre el subárbol izquierdo.
• Recorre el subárbol derecho.
20
A
B C
D E F
H I
G
RID
Preorden = A B D G C E H I F
RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA
BINARIA (ABB) (CONT.)
PREORDEN (NODO)
{NODO es un dato de tipo apuntador}
{INFO, IZQ, DER son campos del registro}
Si nodo != null entonces
{
Escribir NODO.INFO
PREORDEN (NODO.IZQ)
PREORDEN (NODO.DER)
}
21
RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA
BINARIA (ABB) (CONT.)
• Recorrido en inorden (infijo)
• Recorre el subárbol izquierdo.
• Visita la raíz
• Recorre el subárbol derecho.
22
A
B C
D E F
H I
G
Inorden: D G B A H E I C F
IRD
RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA
BINARIA (ABB) (CONT.)
INORDEN (NODO)
{NODO es un apuntador a registro}
Si NODO != null entonces
{
INORDEN (NODO.IZQ);
Escribir NODO.INFO;
INORDEN (NODO.DER);
}
23
RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA
BINARIA (ABB) (CONT.)
• Recorrido en postorden (postfijo)
• Recorre el subárbol izquierdo.
• Recorre el subárbol derecho.
• Visita la raíz.
24
A
B C
D E F
H I
G
Postorden : G D B H I E F C A
IDR
RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA
BINARIA (ABB) (CONT.)
POSTORDEN (NODO)
Si NODO != null entonces
{
POSTORDEN (NODO.IZQ);
POSTORDEN (NODO.DER);
Escribir NODO.INFO;
}
25
INSERCIÓN EN UN ABB
• La inserción es una operación que se puede realizar eficientemente en un árbol
binario de búsqueda. La estructura crece conforme se inserten elementos al árbol.
• Los pasos que deben realizarse para insertar un elemento a un ABB son los
siguientes:
• Debe compararse el valor o dato 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.
26
INSERCIÓN EN UN ABB (CONT.)
• Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las
siguientes condiciones
• El subárbol derecho es igual a vació, o el subárbol izquierdo es igual a vació; en
cuyo caso se procederá a insertar el elemento en el lugar que le corresponde.
• El valor o dato que quiere insertarse es igual a la raíz del árbol; en cuyo caso
no se realiza la inserción.
27
INSERCIÓN EN UN ABB (CONT.)
Algoritmo
Si NODO ≠ Null{
Si (INFOR < NODO.INFO)
Regresar a INSERCION1 con NODO.IZQ e INFOR
sino
si ( INFOR > NODO.INFO)
Regresar a INSERCION1 con NODO.DER e INFOR
sino
Escribir “El nodo ya se encuentra en el árbol”
} // } si
else
CREA (OTRO) {Crear un nuevo nodo}
Hacer OTRO.IZQ = null,
OTRO.DER = null,
OTRO.INFO = INFOR y NODO = OTRO
}
28
INSERCIÓN EN UN ABB (CONT.)
• Supóngase que quieren insertarse las siguientes los siguientes datos en un
árbol binario de búsqueda que se encuentra vació.
120 –87 – 43 – 65 – 140 – 99 – 130 – 22 – 56
29
INSERCIÓN EN UN ABB (CONT.) SOLUCIÓN
120 –87 – 43 – 65 – 140 – 99 – 130 – 22 – 56
30
120
87 140
43 130
56
I
22
65
99
ELIMINAR UN NODO
Para eliminar un nodo existen los siguientes casos:
1. Si el elemento a borrar es Terminal (hoja),
2. Si el elemento a borrar tiene un solo hijo,
3. Si el elemento a borrar tiene los dos hijo,
31
ELIMINAR UN NODO (CONT.)
• Caso 1
Si el elemento a borrar es terminal (hoja), simplemente se elimina.
aux = aux.izq = null
32
Ejemplo eliminar nodo 7
8
1
9
7
6
8
1
9
7
6
8
1
9
6
ELIMINAR UN NODO (CONT.)
• Caso 2
Si el elemento a borrar tiene un solo hijo, entonces tiene que sustituirlo por el
hijo
33
8
1
9
7
1 9
7
8
1
9
7
Ejemplo: eliminar nodo 8
ELIMINAR UN NODO (CONT.)
•Caso 3
Si el elemento a borrar tiene los dos hijos, entonces se tienen
que sustituir por el nodo que se encuentra mas a la izquierda
en el subárbol derecho, o por el nodo que se encuentra mas a
la derecha en el subárbol izquierdo.
34
Ejemplo: eliminar el 6
8
1
9
7
6
8
1
9
7
7
8
1
9
7
ELIMINAR UN NODO (CONT.)
si NODO !=null entonces
si Dato < NODO.info
Eliminación (NODO.izq, Dato)
si no
si dato > NODO.INFO
entonces Eliminación (NODO.der, Dato
si no
otro = NODO
si otro.der == null
entonces NODO = otro.izq
si no
si otro.izq == null
entonces NODO = otro.der
35
ELIMINAR UN NODO (CONT.)
Si no
{aux = otro.izq
aux1 = Aux
while (aux.der != null )
aux1 = aux
aux = aux.der
}
otro.info = aux.info
otro = aux
aux1.der = aux.izq
quita (otro) (null)
si no Escribir (‘el nodo no se encuentra en el árbol’)
} 36
ELIMINAR UN NODO (CONT.)
• Elimina el 22,. 99, 87, 120, 140, 135, 56
37
93
87
43 99
120
130
140
65
56
22
135
BUSCAR NODO CON INFORMACIÓN
Si dato < NODO.info
Si NODO.IZQ == null
Escribir “El nodo no se encuentra en el árbol”
Si no
Búsqueda (NODO.izq,dato)
Si no
Si Dato > NODO.INFO entonces Si NODO.DER = null
Escribir “No se encuentra”
Si no Búsqueda (NODO.der,dato)
Si no Escribir “El NODO se encuentra en el árbol”
si nodo != null
si Dato < NODO .INFO
Búsqueda (Nodo.izq,Dato)
si no
si Dato > No dato.der
Búsqueda (No dato.der,dato)
si no
escribir “El Dato se encuentra”
Si no Escribir “El dato no se encuentra en el árbol”
38
CONTAR NODOS
//cuenta los nodos que hay en el árbol
public static int nodo (nodo raiz){
if (raiz == null) return 0;
else
return (1+ Nodo( raiz.der) + Nodo( raiz.izq))
}
39
SUMAR LOS NODOS
//suma los nodos que hay en el árbol
public static int sumaNodo( nodo raiz){
if(raiz == null) return 0;
else
Return (sumaNodo (raiz.der) + sumaNodo (raiz.izq) )
}
40
CALCULAR PROFUNDIDAD DEL ÁRBOL
// calcula la profundidad de un árbol
public int profundidad (Nodo raiz) {
if (raiz == null) return 0;
If (profundidad (raiz.der) > profundidad (raiz.izq))
return profundidad (raiz.der) + 1;
else
return profundidad( raiz.izq) + 1
}
41
CONTAR HOJAS.
// Cuenta hojas de un árbol
public int contarHojas (Nodo raiz) {
if (raiz = = null) return 0;
If ((raiz.der == null) && (raiz.izq == null))
Return 1;
else
return contarHojas (raiz.izq) + contarHojas (raiz.der)
}
42
LIGAS
• Inserta elimina y busca en un árbol binario
• http://www.cs.jhu.edu/~goodrich/dsa/trees/btree.html
• http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20
applet.htm
• Genera apartir de expresiones aritmeticas los árboles
binarios
• http://www.cs.jhu.edu/~goodrich/dsa/05trees/Demo1/
43
EJERCICIO
Realiza la implementación de un árbol con sus funciones
44
• Recorrer árbol
• Preorden
• Inorden
• Postorden
• Inserción nodo
• Eliminar nodo
• Buscar nodo con información
• Sumar los nodos
• Calcular profundidad del árbol
• Contar nodos
• Contar hojas.

Más contenido relacionado

Similar a Arboles.pdf (20)

04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles
 
Sustentacion arboles
Sustentacion arbolesSustentacion arboles
Sustentacion arboles
 
Arboles TDAS
Arboles TDASArboles TDAS
Arboles TDAS
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 
1 árbol
1 árbol1 árbol
1 árbol
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 
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
 
Diapositiva de prueba
Diapositiva de pruebaDiapositiva de prueba
Diapositiva de prueba
 
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
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Arboles
ArbolesArboles
Arboles
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
Árboles Binarios
Árboles BinariosÁrboles Binarios
Árboles Binarios
 
Abinariosbusqueda
AbinariosbusquedaAbinariosbusqueda
Abinariosbusqueda
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Presentación Árbol Binario
Presentación Árbol BinarioPresentación Árbol Binario
Presentación Árbol Binario
 
ARBOLES BINARIOS
ARBOLES BINARIOSARBOLES BINARIOS
ARBOLES BINARIOS
 

Último

La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfluisccollana
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfIrapuatoCmovamos
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfEDUARDO MAMANI MAMANI
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciaferg6120
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria deCalet Cáceres Vergara
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfRodrigoBenitez38
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...israel garcia
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,juberrodasflores
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfGEINER22
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaSilvia García
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitariachayananazcosimeon
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfJC Díaz Herrera
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalIngrid459352
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfJC Díaz Herrera
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)estebancitoherrera
 

Último (20)

La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
 
triptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescenciatriptico-de-las-drogas en la adolescencia
triptico-de-las-drogas en la adolescencia
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria de
 
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdfCritica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
Critica 1 Grupo 10 RodrigoBenitez_GinaGadea_AlexisGonzález.pdf
 
Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...Cuáles son las características biológicas que están marcadas en tu individual...
Cuáles son las características biológicas que están marcadas en tu individual...
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdf
 
Unidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y químicaUnidad 3 Elementos y compuestos. Física y química
Unidad 3 Elementos y compuestos. Física y química
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
 
Las mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdfLas mujeres más ricas del mundo (2024).pdf
Las mujeres más ricas del mundo (2024).pdf
 
Técnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dentalTécnica palatina baja, anestesiología dental
Técnica palatina baja, anestesiología dental
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdfLos artistas mexicanos con más ventas de discos en la historia (2024).pdf
Los artistas mexicanos con más ventas de discos en la historia (2024).pdf
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)
 

Arboles.pdf

  • 2. DEFINICIÓN Un árbol dirigido es una estructura: • Jerárquica porque los componentes están a distinto nivel. • Organizada porque importa la forma en que esté dispuesto el contenido. • Dinámica porque su forma, tamaño y contenido pueden variar durante la ejecución. Un árbol puede ser: • vacío, • Una raíz + subárboles. 2
  • 3. REPRESENTACIÓN DE UN ÁRBOL. • Mediante diagramas de Venn • Mediante círculos y flechas • Mediante paréntesis anidados: ( a ( b (e,f), c, d ) ) 3 a b c d e f a c d b e f
  • 4. CONCEPTOS BÁSICOS • Si hay un camino de A hasta B, se dice que A es antecesor de B, y que B es sucesor de A. • Padre es el antecesor inmediato de un nodo • Hijo, cualquiera de sus descendientes inmediatos. • Descendiente de un nodo, es cualquier sucesor de dicho nodo. • Hermano de un nodo, es otro nodo con el mismo padre. • Generación, es un conjunto de nodos con la misma profundidad. 4
  • 5. CONCEPTOS BÁSICOS (CONT.) • Raíz es el nodo que no tiene ningún predecesor (sin padre). • Hoja es el nodo que no tiene sucesores (sin hijos) (Terminal). Los que tienen predecesor y sucesor se llaman nodos interiores. • Rama es cualquier camino del árbol. • Bosque es un conjunto de árboles desconectados. • Nivel o profundidad de un nodo, es la longitud del camino desde la raíz hasta ese nodo. El nivel puede definirse como 0 para la raíz y nivel (predecesor)+1 para los demás nodos. 5
  • 6. CONCEPTOS BÁSICOS (CONT.) • Los nodos de la misma generación tienen el mismo nivel. • Grado de un nodo, es el número de flechas que salen de ese nodo (hijos). El número de las que entran siempre es uno. • Grado de un árbol, es el mayor grado que puede hallarse en sus nodos. • Longitud del camino entre 2 nodos: es el número de arcos que hay entre ellos. 6
  • 7. CONCEPTOS BÁSICOS (CONT.) 7 Raíz hijo Hermano Padre hoja Subárbol Nivel de profundidad = 7 Grado de un nodo = 3 Grado del árbol = 3
  • 8. TIPOS DE ÁRBOLES Un árbol ordenado: Es aquel en el que las ramas de los nodos están ordenadas. • Los de grado 2 se llaman árboles binarios. • Cada árbol binario tiene un subárbol izquierda y subárbol derecha. 8 + - ^ 3.5 / B A D C
  • 9. TIPOS DE ÁRBOLES (CONT.) Árboles de expresión • Representan un orden de ejecución 9 + + * B A * E D C * + - 7 12 9 (A* B) + C * D + E (7 + 12) * (-9) → -171
  • 10. TIPOS DE ÁRBOLES (CONT.) • Árboles similares: Los que tienen la misma estructura (forma) • Árboles Equivalentes: Son los árboles similares y sus nodos contienen la misma información. • Árboles n-ario: Es un árbol ordenado cuyos nodos tiene N subárboles, y donde cualquier número de subárboles puede ser árboles vacíos 10 1 2 5 6 4 3 9 8 7 a b e f d c i h g
  • 11. TIPOS DE ÁRBOLES (CONT.) Árbol binario completo: • Es un árbol en el que todos sus nodos, excepto los del ultimo nivel, tienen dos hijos. • Número de nodos en un árbol binario completo = 2h –1 (en el ejemplo h = 4, → 15) esto nos ayuda a calcular el nivel de árbol necesario para almacenar los datos de una aplicación. 11
  • 13. ÁRBOLES BINARIOS DE BÚSQUEDA • Un árbol es un ABB si éste es binario y sus nodos son subárboles de búsqueda binarios y contienen información ordenada de tal que todos los elementos a la izquierda de la raíz son menores a la raíz y todos lo elementos a la derecha de la raíz son mayores a la raíz. 13
  • 14. CARACTERÍSTICAS DE UN ABB • Todos los nodos a la izquierda son menores al padre. • Todos los nodos a la derecha son mayores al padre. • Y solo pueden tener 2 hijos a lo mucho. 14 50 95 90 110 110 88 85 100 105 102 68 34 40 45 26 42 8
  • 15. CONVERSIÓN DE UN ÁRBOL GENERAL EN UN ÁRBOL BINARIO • Los hermanos se enlazan en forma horizontal (lineal) • Se enlaza en forma vertical el padre con el hijo que se encuentra mas a la izquierda y se elimina el enlace de este padre con los demás hijos. • Se rota el diagrama resultante 45 grados hacia la izquierda. 15
  • 16. CONVERSIÓN DE UN ÁRBOL GENERAL EN UN ÁRBOL BINARIO (CONT.) 16 A B D C E F G H I J K L M N O A M B C D F E G I H K J O N L = queda así O A M B C D F E G I H K J N L
  • 17. REPRESENTACIÓN DE UN ÁRBOL BINARIO EN LA MEMORIA. • Cada noto tiene la siguiente forma: 17 Raíz R A B C D E izq info der
  • 18. CLASE NODO DE UN ABB Class Nodo{ nodo izq; nodo der; int dato; } 18
  • 19. OPERACIONES SOBRE UN ÁRBOL • Recorrer árbol • Preorden • Inorden • Postorden • Inserción nodo • Eliminar nodo • Buscar nodo con información • Sumar los nodos • Calcular profundidad del árbol • Contar nodos • Contar hojas. 19
  • 20. RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA BINARIA (ABB) • Recorrido en preorden (prefijo) • Visita la raíz. • Recorre el subárbol izquierdo. • Recorre el subárbol derecho. 20 A B C D E F H I G RID Preorden = A B D G C E H I F
  • 21. RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA BINARIA (ABB) (CONT.) PREORDEN (NODO) {NODO es un dato de tipo apuntador} {INFO, IZQ, DER son campos del registro} Si nodo != null entonces { Escribir NODO.INFO PREORDEN (NODO.IZQ) PREORDEN (NODO.DER) } 21
  • 22. RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA BINARIA (ABB) (CONT.) • Recorrido en inorden (infijo) • Recorre el subárbol izquierdo. • Visita la raíz • Recorre el subárbol derecho. 22 A B C D E F H I G Inorden: D G B A H E I C F IRD
  • 23. RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA BINARIA (ABB) (CONT.) INORDEN (NODO) {NODO es un apuntador a registro} Si NODO != null entonces { INORDEN (NODO.IZQ); Escribir NODO.INFO; INORDEN (NODO.DER); } 23
  • 24. RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA BINARIA (ABB) (CONT.) • Recorrido en postorden (postfijo) • Recorre el subárbol izquierdo. • Recorre el subárbol derecho. • Visita la raíz. 24 A B C D E F H I G Postorden : G D B H I E F C A IDR
  • 25. RECORRIDOS DE UN ÁRBOL DE BÚSQUEDA BINARIA (ABB) (CONT.) POSTORDEN (NODO) Si NODO != null entonces { POSTORDEN (NODO.IZQ); POSTORDEN (NODO.DER); Escribir NODO.INFO; } 25
  • 26. INSERCIÓN EN UN ABB • La inserción es una operación que se puede realizar eficientemente en un árbol binario de búsqueda. La estructura crece conforme se inserten elementos al árbol. • Los pasos que deben realizarse para insertar un elemento a un ABB son los siguientes: • Debe compararse el valor o dato 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. 26
  • 27. INSERCIÓN EN UN ABB (CONT.) • Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las siguientes condiciones • El subárbol derecho es igual a vació, o el subárbol izquierdo es igual a vació; en cuyo caso se procederá a insertar el elemento en el lugar que le corresponde. • El valor o dato que quiere insertarse es igual a la raíz del árbol; en cuyo caso no se realiza la inserción. 27
  • 28. INSERCIÓN EN UN ABB (CONT.) Algoritmo Si NODO ≠ Null{ Si (INFOR < NODO.INFO) Regresar a INSERCION1 con NODO.IZQ e INFOR sino si ( INFOR > NODO.INFO) Regresar a INSERCION1 con NODO.DER e INFOR sino Escribir “El nodo ya se encuentra en el árbol” } // } si else CREA (OTRO) {Crear un nuevo nodo} Hacer OTRO.IZQ = null, OTRO.DER = null, OTRO.INFO = INFOR y NODO = OTRO } 28
  • 29. INSERCIÓN EN UN ABB (CONT.) • Supóngase que quieren insertarse las siguientes los siguientes datos en un árbol binario de búsqueda que se encuentra vació. 120 –87 – 43 – 65 – 140 – 99 – 130 – 22 – 56 29
  • 30. INSERCIÓN EN UN ABB (CONT.) SOLUCIÓN 120 –87 – 43 – 65 – 140 – 99 – 130 – 22 – 56 30 120 87 140 43 130 56 I 22 65 99
  • 31. ELIMINAR UN NODO Para eliminar un nodo existen los siguientes casos: 1. Si el elemento a borrar es Terminal (hoja), 2. Si el elemento a borrar tiene un solo hijo, 3. Si el elemento a borrar tiene los dos hijo, 31
  • 32. ELIMINAR UN NODO (CONT.) • Caso 1 Si el elemento a borrar es terminal (hoja), simplemente se elimina. aux = aux.izq = null 32 Ejemplo eliminar nodo 7 8 1 9 7 6 8 1 9 7 6 8 1 9 6
  • 33. ELIMINAR UN NODO (CONT.) • Caso 2 Si el elemento a borrar tiene un solo hijo, entonces tiene que sustituirlo por el hijo 33 8 1 9 7 1 9 7 8 1 9 7 Ejemplo: eliminar nodo 8
  • 34. ELIMINAR UN NODO (CONT.) •Caso 3 Si el elemento a borrar tiene los dos hijos, entonces se tienen que sustituir por el nodo que se encuentra mas a la izquierda en el subárbol derecho, o por el nodo que se encuentra mas a la derecha en el subárbol izquierdo. 34 Ejemplo: eliminar el 6 8 1 9 7 6 8 1 9 7 7 8 1 9 7
  • 35. ELIMINAR UN NODO (CONT.) si NODO !=null entonces si Dato < NODO.info Eliminación (NODO.izq, Dato) si no si dato > NODO.INFO entonces Eliminación (NODO.der, Dato si no otro = NODO si otro.der == null entonces NODO = otro.izq si no si otro.izq == null entonces NODO = otro.der 35
  • 36. ELIMINAR UN NODO (CONT.) Si no {aux = otro.izq aux1 = Aux while (aux.der != null ) aux1 = aux aux = aux.der } otro.info = aux.info otro = aux aux1.der = aux.izq quita (otro) (null) si no Escribir (‘el nodo no se encuentra en el árbol’) } 36
  • 37. ELIMINAR UN NODO (CONT.) • Elimina el 22,. 99, 87, 120, 140, 135, 56 37 93 87 43 99 120 130 140 65 56 22 135
  • 38. BUSCAR NODO CON INFORMACIÓN Si dato < NODO.info Si NODO.IZQ == null Escribir “El nodo no se encuentra en el árbol” Si no Búsqueda (NODO.izq,dato) Si no Si Dato > NODO.INFO entonces Si NODO.DER = null Escribir “No se encuentra” Si no Búsqueda (NODO.der,dato) Si no Escribir “El NODO se encuentra en el árbol” si nodo != null si Dato < NODO .INFO Búsqueda (Nodo.izq,Dato) si no si Dato > No dato.der Búsqueda (No dato.der,dato) si no escribir “El Dato se encuentra” Si no Escribir “El dato no se encuentra en el árbol” 38
  • 39. CONTAR NODOS //cuenta los nodos que hay en el árbol public static int nodo (nodo raiz){ if (raiz == null) return 0; else return (1+ Nodo( raiz.der) + Nodo( raiz.izq)) } 39
  • 40. SUMAR LOS NODOS //suma los nodos que hay en el árbol public static int sumaNodo( nodo raiz){ if(raiz == null) return 0; else Return (sumaNodo (raiz.der) + sumaNodo (raiz.izq) ) } 40
  • 41. CALCULAR PROFUNDIDAD DEL ÁRBOL // calcula la profundidad de un árbol public int profundidad (Nodo raiz) { if (raiz == null) return 0; If (profundidad (raiz.der) > profundidad (raiz.izq)) return profundidad (raiz.der) + 1; else return profundidad( raiz.izq) + 1 } 41
  • 42. CONTAR HOJAS. // Cuenta hojas de un árbol public int contarHojas (Nodo raiz) { if (raiz = = null) return 0; If ((raiz.der == null) && (raiz.izq == null)) Return 1; else return contarHojas (raiz.izq) + contarHojas (raiz.der) } 42
  • 43. LIGAS • Inserta elimina y busca en un árbol binario • http://www.cs.jhu.edu/~goodrich/dsa/trees/btree.html • http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20 applet.htm • Genera apartir de expresiones aritmeticas los árboles binarios • http://www.cs.jhu.edu/~goodrich/dsa/05trees/Demo1/ 43
  • 44. EJERCICIO Realiza la implementación de un árbol con sus funciones 44 • Recorrer árbol • Preorden • Inorden • Postorden • Inserción nodo • Eliminar nodo • Buscar nodo con información • Sumar los nodos • Calcular profundidad del árbol • Contar nodos • Contar hojas.