Documente Academic
Documente Profesional
Documente Cultură
Montculos
Definiciones bsicas:
Tema 3. Montculos
1.
2.
3.
4.
Definiciones bsicas
Implementacin
Operaciones con montculos
Funciones de manipulacin
Montculos
Montculos
10
Definiciones bsicas:
no satisface la
condicin de
montculo
12
8
9
12
12
10
8
9
10
9
6
no es completo
es un montculo
Montculos
Montculos
Utilizacin:
Implementacin:
Si el array es de 0 .. N-1:
T[2i+1] y T[2i+2]
Montculos
Montculos
Operaciones:
Implementacin:
Al ser rboles binarios completos se implementan mediante
un array
Si el array es de 1 .. N:
Los nodos de profundidad k del rbol se almacenan ledos
de izda. a dcha en:
T[2k], T[2k+1],T[2k+1-1]
Los hijos del nodo T[i] son respectivamente:
T[2i] y T[2i+1]
Crear un montculo
Montculos
Montculos
(1)
(2)
(3)
(4)
10
10
10
10
10
Montculos
Montculos
Operaciones. Crear un montculo
10
10
12
12
10
12
Montculos
Montculos
(1)
(3)
12
10
10
10
(4)
3
3
5
3
(5)
Montculos
Montculos
Operaciones. Eliminar la raz sucesivamente
10
6
5
3
6
3
Montculos
Montculos
Funciones de manipulacin
Creacin
dos elementos al destruir un montculo es log2 (N-1) + log2 (N2) + ... + log2 2, que es O(N log2 N) = O(N log N)
montiEjemplo montculoVaco();
Montculos
Montculos
Funciones de manipulacin
Modificacin: hundir
10
Montculos
Montculos
Funciones de manipulacin
Funciones de manipulacin
Modificacin: flotar
montiEjemplo borrarRaiz(montiEjemplo);
Montculos
Montculos
Funciones de manipulacin
Funciones de manipulacin
Consulta: vaco
varBooleana vacio(montiEjemplo);
11
12
Montculos
Funciones de manipulacin
Consulta: raz
fun raiz(m:montculo) dev e:elemento
Devuelve elemento de mayor valor del montculo sin
borrarlo. Ejemplo:
elemento raiz(montiEjemplo);
Montculos
Funciones de manipulacin. Coste
Funciones
montculoVaco
Coste
Cte
hundir
O(log N)
flotar
O(log N)
anadirNodo
O(log N)
borrarRaiz
O(log N)
vacio
Cte
raiz
Cte
13