Beruflich Dokumente
Kultur Dokumente
Mauro Maldonado
Abril/2005
Introduccin
La estructura heap es frecuentemente usada para implementar colas
de prioridad. En este tipo de colas, el elemento a ser eleminado
(borrados) es aqul que tiene mayor (o menor) prioridad. En
cualquier momento, un elemento cun una prioridad arbitraria
puede ser insertado en la cola. Una estructura de datos que
soporta estas dos operaciones es la cola de priporidad mxima
(mnima).
Se asume que un elemento es una estructura con una miembro dato
key adems de otros miembros datos.
Por otra parte se sabe que cualquier estructura de datos que
implemente una cola de prioridad maxima tiene que implementar
las operaciones insert y delete.
Definicin
Un max (min) tree es un rbol en el cual el valor de la
llave de cada nodo no es menor (mayor) que la de los
valores de las llaves de sus hijos (si tiene alguno). Un
max heap es un rbol binario completo que es tambin
un max tree. Por otra parte, un min heap es un rbol
binario completo que es tambin un min tree.
De la definicin se sabe que la llave del root de un min
tree es la menor llave del rbol, mientras que la del root
de un max tree es la mayor. Las operaciones bsicas de
un heap son:
Creacin de un heap vaco
Insercin de un nuevo elemento en la estructura heap.
Eliminacin del elemento ms grande del heap.
Categoras de un heap
Existen tres categoras de un heap: max heap, min heap y min-max
heap.
Un heap tiene las siguientes tres propiedades:
igual a las
es llamada
Min heap
5
A = {33,60,5,15,25,12,45,70,35,7}
12
35
70
15
60
33
45
Min
60
15
25
70
25
45
Niveles
Max heap
35
33
70
12
15
60
35
45
7
25
12
Max
33 Min
Max
Insert
33
33
60
a) Insertar 33 en la
estructura vaca
60
60
Reajuste
60
33
5
33
33
15
c) Insertar 5
b) Insertar 60
d) Insertar 15
60
60
33
15
33
5
15
60
5
25
Reajuste
12
33
15
25
e) Insertar 25
f) Insertar 12
12
25
60
60
33
15
Reajuste
12
5
25
33
15
45
45
5
25
12
g) Insertar 45
60
33
15
70
70
Reajuste
12
25
33
45
60
45
25
12
15
h) Insertar 70
70
70
60
33
15
45
25
60
Reajuste
35
12
15
35
25
33
i) Insertar 35
70
60
45
35
15
25
33
7
j) Insert 7
45
12
12
Eliminar
Cuando se necesita eliminar un elemento de la estructura max heap se
toma de la raz root del heap. Por ejemplo, al eliminar la raz root del
siguiente ejemplo (a) resulta que se elimina entonces el elemento 21
(b). Ya que el heap resultante tiene solamente cinco elementos, el
rbol binario necesita ser reestructurado para que corresponda a un
rbol binario completo con cinco elementos. Para hacer esto, se
elimina el elemento en la posicin 6 (en este caso el elemento 2).
Ahora tenemos la estructura correcta (c), pero la raz root est
vacante y el elemento 2 no est en el heap.
21
15
14
20
10
a)
15
14
20
10
b)
Eleminar elemento 21
15
14
20
10
c)
20
15
14
20
10
b)
20
15
14
15
10
c)
14
2
10
d)
15
2
14
10
15
14
10
b)
a)
c)
15
15
2
14
15
2
14
10
14
d)
e)
f)
Bibliografa