47
Algoritmos y estructuras de datos I - Tema 14 1 Tema 14: ÁRBOLES

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

  • Upload
    dohanh

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.