![Page 1: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/1.jpg)
Algoritmos y estructuras de datos I - Tema 14 1
Tema 14: ÁRBOLES
![Page 2: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/2.jpg)
Algoritmos y estructuras de datos I - Tema 14 2
Estructura Árbol
Definición: Una estructura de árbol con tipo base Valor es:(i) Bien la estructura vacía.(ii) Un conjunto finito de uno o más nodos, tal que existe
un nodo especial, llamado nodo raíz, y donde los restantes nodos están separados en n≥0 conjuntos disjuntos, cada uno de los cuales es a su vez un árbol (llamados subárboles del nodo raíz).
La definición implica que cada nodo del árbol es raíz de algún subárbol contenido en el árbol principal.
![Page 3: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/3.jpg)
Algoritmos y estructuras de datos I - Tema 14 3
Ejemplo de Árbol
A
B C D
E F G H I J
K L M
![Page 4: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/4.jpg)
Algoritmos y estructuras de datos I - Tema 14 4
Ejemplo de Árbol
A
B C D
E F G H I J
K L M
raízraíz
![Page 5: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/5.jpg)
Algoritmos y estructuras de datos I - Tema 14 5
Ejemplo de Árbol
A
B C D
E F G H I J
K L M
raízraíz
![Page 6: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/6.jpg)
Algoritmos y estructuras de datos I - Tema 14 6
Ejemplo de Árbol (LIBRO)
Libro
Cap. 1 Cap. 2 Cap.3
Sec. 1.1 Sec. 1.2 Sec. 3.1 Sec. 3.2 Sec. 3.3
Subsec. 1.2.1 Subsec. 1.2.2 Subsec. 3.2.1
Cap.4
Subsec. 3.2.2
![Page 7: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/7.jpg)
Algoritmos y estructuras de datos I - Tema 14 7
Terminología
Grado de un nodo: Número de subárboles que tienen como raíz ese nodo (el número de subárboles que "cuelgan" del nodo).
Nodo terminal: Nodo con grado 0, no tiene subárboles.
Grado de un árbol: Grado máximo de los nodos de un árbol.
Hijos de un nodo: Nodos que dependen directamente de ese nodo, es decir, las raíces de sus subárboles.
Padre de un nodo: Antecesor directo de un nodo, nododel que depende directamente.
Nodos hermanos: Nodos hijos del mismo nodo padre.
Camino: Sucesión de nodos del árbol n1, n2, ..., nk, tal que nies el padre de ni+1.
![Page 8: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/8.jpg)
Algoritmos y estructuras de datos I - Tema 14 8
Terminología (2)
Antecesores de un nodo: Todos los nodos en el camino desde la raíz del árbol hasta ese nodo.
Nivel de un nodo: Longitud del camino desde la raíz hasta el nodo.
Profundidad de un nodo: Nivel de un nodo.
Altura (profundidad) de un árbol: Nivel máximo de un nodo en el árbol.
Altura de un nodo: Altura del árbol que lo tiene como raíz.
Longitud de camino de un árbol: Suma de las longitudes de los caminos a todos sus componentes.
Bosque: Conjunto de n>0 árboles disjuntos.
![Page 9: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/9.jpg)
Algoritmos y estructuras de datos I - Tema 14 9
Árboles Binarios
Árboles de grado 2.
Definición: Un árbol binario es un conjunto finito de nodos que puede estar vacío o consistir en un nodo raíz y dos árboles binarios disjuntos, llamados subárbol izquierdoy subárbol derecho.
A
B
C
A
B
C
≠
![Page 10: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/10.jpg)
Algoritmos y estructuras de datos I - Tema 14 10
Ejemplo de Árbol Binario
A
B C
D E F
G H I
![Page 11: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/11.jpg)
Algoritmos y estructuras de datos I - Tema 14 11
Propiedades de los Árboles Binarios
1. El número máximo de nodos en el nivel (profundidad) i de un árbol binario es 2i-1, i≥1, y el número máximo de nodos en un árbol binario de altura k es 2k-1, k≥1.
2. Para cualquier árbol binario no vacío, si n0 es el número de nodos terminales y n2 es el número de nodos de grado 2, entonces se cumple que n0 = n2 +1.
![Page 12: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/12.jpg)
Algoritmos y estructuras de datos I - Tema 14 12
Árbol binario lleno: Se dice que un árbol binario está lleno si es un árbol binario de altura k que tiene 2k-1 nodos.
Definiciones
A
B C
D F GE
H J KI L N OM
![Page 13: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/13.jpg)
Algoritmos y estructuras de datos I - Tema 14 13
Árbol binario completo: Se dice que un árbol binario de altura k está completo si está lleno hasta altura k-1 y el último nivel esta ocupado de izquierda a derecha.
Definiciones
A
B C
D F GE
H JI
![Page 14: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/14.jpg)
Algoritmos y estructuras de datos I - Tema 14 14
TAD Árbol Binario
Operaciones:
Axiomas:
![Page 15: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/15.jpg)
Algoritmos y estructuras de datos I - Tema 14 15
TAD Árbol Binario
Operaciones:IniciarArbol ( ) AB
Axiomas:
![Page 16: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/16.jpg)
Algoritmos y estructuras de datos I - Tema 14 16
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) AB
Axiomas:
![Page 17: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/17.jpg)
Algoritmos y estructuras de datos I - Tema 14 17
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) Valor
Axiomas:
![Page 18: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/18.jpg)
Algoritmos y estructuras de datos I - Tema 14 18
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) AB
Axiomas:
![Page 19: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/19.jpg)
Algoritmos y estructuras de datos I - Tema 14 19
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) AB
Axiomas:
![Page 20: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/20.jpg)
Algoritmos y estructuras de datos I - Tema 14 20
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:
![Page 21: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/21.jpg)
Algoritmos y estructuras de datos I - Tema 14 21
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:
![Page 22: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/22.jpg)
Algoritmos y estructuras de datos I - Tema 14 22
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:ArbolVacio ( IniciarArbol ( ) ) cierto
![Page 23: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/23.jpg)
Algoritmos y estructuras de datos I - Tema 14 23
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:ArbolVacio ( IniciarArbol ( ) ) ciertoArbolVacio ( HacerArbol ( p, d, r ) ) falso
![Page 24: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/24.jpg)
Algoritmos y estructuras de datos I - Tema 14 24
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:ArbolVacio ( IniciarArbol ( ) ) ciertoArbolVacio ( HacerArbol ( p, d, r ) ) falsoHijoIzquierdo ( HacerArbol ( p, d, r ) ) p
![Page 25: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/25.jpg)
Algoritmos y estructuras de datos I - Tema 14 25
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:ArbolVacio ( IniciarArbol ( ) ) ciertoArbolVacio ( HacerArbol ( p, d, r ) ) falsoHijoIzquierdo ( HacerArbol ( p, d, r ) ) pHijoIzquierdo ( IniciarArbol ( ) ) ERROR
![Page 26: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/26.jpg)
Algoritmos y estructuras de datos I - Tema 14 26
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:ArbolVacio ( IniciarArbol ( ) ) ciertoArbolVacio ( HacerArbol ( p, d, r ) ) falsoHijoIzquierdo ( HacerArbol ( p, d, r ) ) pHijoIzquierdo ( IniciarArbol ( ) ) ERRORHijoDerecho ( HacerArbol ( p, d, r ) ) r
![Page 27: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/27.jpg)
Algoritmos y estructuras de datos I - Tema 14 27
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:ArbolVacio ( IniciarArbol ( ) ) ciertoArbolVacio ( HacerArbol ( p, d, r ) ) falsoHijoIzquierdo ( HacerArbol ( p, d, r ) ) pHijoIzquierdo ( IniciarArbol ( ) ) ERRORHijoDerecho ( HacerArbol ( p, d, r ) ) rHijoDerecho ( IniciarArbol ( ) ) ERROR
![Page 28: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/28.jpg)
Algoritmos y estructuras de datos I - Tema 14 28
TAD Árbol Binario
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:ArbolVacio ( IniciarArbol ( ) ) ciertoArbolVacio ( HacerArbol ( p, d, r ) ) falsoHijoIzquierdo ( HacerArbol ( p, d, r ) ) pHijoIzquierdo ( IniciarArbol ( ) ) ERRORHijoDerecho ( HacerArbol ( p, d, r ) ) rHijoDerecho ( IniciarArbol ( ) ) ERRORInformacion ( HacerArbol ( p, d, r ) ) d
![Page 29: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/29.jpg)
Algoritmos y estructuras de datos I - Tema 14 29
TAD Árbol Binario (AB)
Operaciones:IniciarArbol ( ) ABHacerArbol (AB, Valor, AB) ABInformacion (AB) ValorHijoIzquierdo (AB) ABHijoDerecho (AB) ABArbolVacio (AB) Lógico
Axiomas:Sean p, r Є AB y d Є Valor, se cumple que:ArbolVacio ( IniciarArbol ( ) ) ciertoArbolVacio ( HacerArbol ( p, d, r ) ) falsoHijoIzquierdo ( HacerArbol ( p, d, r ) ) pHijoIzquierdo ( IniciarArbol ( ) ) ERRORHijoDerecho ( HacerArbol ( p, d, r ) ) rHijoDerecho ( IniciarArbol ( ) ) ERRORInformacion ( HacerArbol ( p, d, r ) ) dInformacion ( IniciarArbol ( ) ) ERROR
![Page 30: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/30.jpg)
Algoritmos y estructuras de datos I - Tema 14 30
Clase Árbol Binario (AB)class AB{
public:AB (); AB (const AB &);~AB ();void HacerArbol (AB&, Valor, AB&);bool Informacion (Valor &);AB& HijoIzdo ();AB& HijoDcho ();bool ArbolVacio ();
private:...
};
![Page 31: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/31.jpg)
Algoritmos y estructuras de datos I - Tema 14 31
Árboles generales (grado k)
20 22
11
15
24
36
10
16
Ejemplo k =3Ejemplo k =3
![Page 32: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/32.jpg)
Algoritmos y estructuras de datos I - Tema 14 32
Árboles generales (grado k)
20 22
11
15
24
36
10
16
Ejemplo k =3Ejemplo k =3
20 22
11
15
24
36
10
16
infohermano
hijos
![Page 33: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/33.jpg)
Algoritmos y estructuras de datos I - Tema 14 33
Árboles generales (grado k)
20 22
11
15
24
36
10
16
20
22
11
15
24
36
10
16hijos = HijoIzqhermano = HijoDerhijos = HijoIzqhermano = HijoDer
![Page 34: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/34.jpg)
Algoritmos y estructuras de datos I - Tema 14 34
Árboles Binarios de Búsqueda
Definición: Un árbol binario de búsqueda es un árbol binario, que puede estar vacío, y que si es no vacío cumple las siguientes propiedades:
1) Todos los nodos están identificados por una clave y no existen dos elementos con la misma clave.
2) Las claves de los nodos del subárbol izquierdo son menores que la clave del nodo raíz.
3) Las claves de los nodos del subárbol derecho son mayores que la clave del nodo raíz.
4) Los subárboles izquierdo y derecho son también árboles binarios de búsqueda.
![Page 35: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/35.jpg)
Algoritmos y estructuras de datos I - Tema 14 35
Ejemplo: A.B. Búsqueda
25
10
13
6722
40
43
23 76
![Page 36: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/36.jpg)
Algoritmos y estructuras de datos I - Tema 14 36
Clase Árbol Binario de Búsqueda (ABB)class ABB{
public:ABB (); ABB (const ABB &);~ABB ();const ABB& operator= (const ABB&);bool Informacion (Valor &);ABB& HijoIzdo ();ABB& HijoDcho ();bool ABBVacio ();ABB& Buscar (Valor);bool Insertar (Valor);bool Eliminar (Valor);
private:...
};
![Page 37: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/37.jpg)
Algoritmos y estructuras de datos I - Tema 14 37
Montículos: Fundamentos
El problema de la selección:Seleccionar de entre un conjunto extenso de valores un elemento extremo (máximo o mínimo).
Aplicación:Colas de prioridad
Montículos
![Page 38: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/38.jpg)
Algoritmos y estructuras de datos I - Tema 14 38
Montículos binarios (de mínimos)
Definición:Árbol binario completo.Para todo nodo x se cumple que el valor de x(prioridad) es menor o igual que los valores de susnodos hijos.
![Page 39: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/39.jpg)
Algoritmos y estructuras de datos I - Tema 14 39
Montículos: Ejemplo
13
16
24
21
31 1968
65 26
![Page 40: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/40.jpg)
Algoritmos y estructuras de datos I - Tema 14 40
Hacer Montículo un array
Todo array se puede ver como un árbol binario completo.
12 6 45 56 23 1 67 34
12
6 45
56 23 1 67
34
0 1 2 3 4 5 6 7
0
1 2
3 4 5 6
7
![Page 41: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/41.jpg)
Algoritmos y estructuras de datos I - Tema 14 41
Hacer Montículo un array
Convertir un array en un montículo consiste en organizar bien los datos (Subir o Bajar hasta su posición correcta).
12 6 45 56 23 1 67 34
12
6 45
56 23 1 67
34
0 1 2 3 4 5 6 7
0
1 2
3 4 5 6
7 Los nodos terminales son montículos, puesto que no tienen hijos.
Los nodos terminales son montículos, puesto que no tienen hijos.
![Page 42: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/42.jpg)
Algoritmos y estructuras de datos I - Tema 14 42
Hacer Montículo un array
Convertir un array en un montículo consiste en organizar bien los datos (Subir o Bajar hasta su posición correcta).
12 6 45 56 23 1 67 34
12
6 45
56 23 1 67
34
0 1 2 3 4 5 6 7
0
1 2
3 4 5 6
7
Bajar (3), llevará 56 a su lugarBajar (3), llevará 56 a su lugarConsiderar montículo de máximos.
![Page 43: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/43.jpg)
Algoritmos y estructuras de datos I - Tema 14 43
Hacer Montículo un array
Convertir un array en un montículo consiste en organizar bien los datos (Subir o Bajar hasta su posición correcta).
12 6 45 56 23 1 67 34
12
6 45
56 23 1 67
34
0 1 2 3 4 5 6 7
0
1 2
3 4 5 6
7
Bajar (2), llevará 45 a su lugarBajar (2), llevará 45 a su lugar
![Page 44: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/44.jpg)
Algoritmos y estructuras de datos I - Tema 14 44
Hacer Montículo un array
Convertir un array en un montículo consiste en organizar bien los datos (Subir o Bajar hasta su posición correcta).
12 6 67 56 23 1 45 34
12
6 67
56 23 1 45
34
0 1 2 3 4 5 6 7
0
1 2
3 4 5 6
7
Bajar (1), llevará 6 a su lugarBajar (1), llevará 6 a su lugar
![Page 45: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/45.jpg)
Algoritmos y estructuras de datos I - Tema 14 45
Hacer Montículo un array
Convertir un array en un montículo consiste en organizar bien los datos (Subir o Bajar hasta su posición correcta).
12 56 67 34 23 1 45 6
12
56 67
34 23 1 45
6
0 1 2 3 4 5 6 7
0
1 2
3 4 5 6
7
Bajar (0), llevará 12 a su lugarBajar (0), llevará 12 a su lugar
![Page 46: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/46.jpg)
Algoritmos y estructuras de datos I - Tema 14 46
Hacer Montículo un array
Convertir un array en un montículo consiste en organizar bien los datos (Subir o Bajar hasta su posición correcta).
67 56 45 34 23 1 12 6
67
56 45
34 23 1 12
6
0 1 2 3 4 5 6 7
0
1 2
3 4 5 6
7
El array ya es un montículoEl array ya es un montículo
La reestructuración tiene un coste lineal, O (n)La reestructuración tiene un coste lineal, O (n)
![Page 47: Tema 14: ÁRBOLES - informatica.uv.esinformatica.uv.es/iiguia/AED/teoria/apuntes/cuatr2/tema14.pdf · Algoritmos y estructuras de datos I - Tema 14 6 Ejemplo de Árbol (LIBRO) Libro](https://reader031.vdocuments.co/reader031/viewer/2022022618/5baa460509d3f2c9618b7af6/html5/thumbnails/47.jpg)
Algoritmos y estructuras de datos I - Tema 14 47
Ordenación mediante montículos
Se pueden utilizar los montículos como método alternativo para ordenar vectores Método HeapSort
El coste medio del algoritmo HeapSort es igual que el del método QuickSort O (n.lg n)
El método consiste en:1. Reestructurar el array para convertirlo en un
montículo de máximos, según el esquema anterior.
2. Seleccionar el máximo (primer elemento) e intercambiarlo con el último elemento del vector. El máximo ocupa su posición final.
3. Considerar que el montículo tienen un elemento menos.
4. Aplicar Bajar(0) para colocar el elemento que está mal en el montículo.