You are on page 1of 6

Estructura de Datos y de la Información

Mª del Puerto Paule Ruiz

Tema 11: Montículos y Colas


de Prioridad

Lenguajes y Sistemas
Informáticos Universidad de Oviedo

Definición-Colas de Prioridad

• Presentes en multitud de situaciones:


colas de impresión, servicio de urgencias
de un hospital, ...
• Optimización de dos operaciones:
„ Insertar el elemento M con prioridad P
„ Sacar el elemento M (teniendo ese
elemento la máxima prioridad)
• Otra operación importante es:
„ Buscar elemento M

Mª del Puerto Paule Ruiz


Posibles Implementaciones

• Implementación:
„ Listas. O(1) Inserción, O(n) buscar y sacar
„ AVL. O(log2n)
„ Arboles binarios de búsqueda:
z Caso peor:

—Cota Mínima: O(log2 n) en las


operaciones
—Cota Máxima: O(n) en las operaciones

Mª del Puerto Paule Ruiz

Características Colas de Prioridad


• Soportan las operaciones de sacar e insertar en un tiempo
logarítmico en el caso peor
„ En el resto de los casos, soportan la inserción y sacar en un
tiempo constante promedio
• Sean fáciles de implementar

package EstructuraDatos;
public interface ColaPrioridad{
void insertar (Comparable x); //inserta el elemento x
Comparable buscar (); //Devuelve el elemento de mayor
//prioridad
Comparable Sacar ();//Devuelve y elimina de la cola el
//elemento de mayor prioridad
void vaciar(); //elimina todos los elementos de la cola
boolean esVacia();//true Æ si esta vacia; false Æ si no
lo esta
}

Mª del Puerto Paule Ruiz


Implementación (I)
• Montículos Binarios:
„ Arbol binario completo, con la posible
excepción del nivel inferior.
„ El nivel inferior se llena de izquierda a
derecha. (Ejemplo 1)
„ Permite su implementación sobre un vector
• Ventajas Montículos Binarios:
„ Complejidad O(log2n) para la inserción y
extracción en el caso peor
„ Constantes menores
„ Se implementa sobre vectores: no
necesitamos para nada las referencias
Mª del Puerto Paule Ruiz

Montículos Binarios(I)

• Propiedad Estructural:
„ Arbol binario completo de altura a:
z N= 2ª-1 (N= número de nodos)

z A=log2N, siendo a, la altura máxima,


luego:
—Amax=log2n, por tanto:
—Operaciones de Insertar y Sacar
tendrán una complejidad no superior a
log2n

Mª del Puerto Paule Ruiz


Montículos (II)

• Dada la estructura fija de árbol binario, se


puede representar como un vector
„ No se necesita guardar referencias
„ La raíz del árbol en la primera posición del
vector (posición 0)
„ Dado un nodo situado en la posición i
z Su hijo izquierdo está en la posición 2i+1

z Su hijo derecho al lado

z Su padre en la posición (i-1)/2

(Ejemplo 2)
Mª del Puerto Paule Ruiz

Montículos (III)

• Propiedad de Ordenación:
„ Tipos Montículos (Relación de orden)

z Montículos de Mínimos

— Todo nodo tiene una clave menor o igual que la de


sus hijos
— El menor elemento se encuentra en la raiz
z Montículos de Máximos

— Todo nodo tiene una clave mayor o igual que la de


sus hijos
— El mayor elemento está en la raiz
• (Ejemplo 3)
• Trabajaremos con montículo de Mínimos

Mª del Puerto Paule Ruiz


Montículos (IV)
• Operación de Insertar
„ Situar el elemento a insertar en la última posición
disponible del vector (garantizamos el árbol
completo)
„ Comparar el elemento insertado con su padre
z Padre en (i-1)/2, siendo i la posición del nodo
insertado
„ Si la clave a insertar es mayor que su padre,
proceso termina
„ Si la clave es menor
z Se intercambia con su padre

z Se repite el proceso hasta que el padre sea


menor o haya alcanzado la raiz
z Este proceso se denomina criba o filtrado
ascendente
Mª del Puerto Paule Ruiz

Montículos (V)

• Operación Insertar
„ Caso mejor: El elemento es lo
suficientemente grande para no
moverse O(1)
„ Caso peor: El elemento es el mínimo
del árbol con lo que se ha de realizar
la criba hasta llegar al raiz O(log2n)
• (Ejemplo 4)
• (Ejemplo 5)
Mª del Puerto Paule Ruiz
Montículos (VI)

• Operación Sacar (mínimo)


„ Devolver el mínimo que está en la raíz (trivial)
„ Cubrir el hueco de la raiz con el último elemento
del vector
z El elemento es el segundo menorÆ Caso mejor
O(1)
z El elemento es mayor que sus hijosÆ Aplicar el
algoritmo de la criba pero descendente hasta
poder situar el elemento. Caso peor O(log2n)
• Ejemplo 6 y 7

Mª del Puerto Paule Ruiz

Ejercicio
Dado el siguiente montículo, represente
gráficamente los pasos necesarios para insertar
el elemento con valor=25. Indique la
complejidad de dicha inserción, así como si está
ante el caso mejor o el caso peor.
21

18
15

12 14

Mª del Puerto Paule Ruiz

You might also like