Post on 07-Jul-2018
8/18/2019 Exposicion Binomial Heap
1/17
bm he
Santiago Lovón García
April 3, 2016
Universidad La Salle
8/18/2019 Exposicion Binomial Heap
2/17
Def
En Ciencia de la Computación se denomina Heap Binomial a una
estructura de datos parecida al Heap Binario pero que brinda unaoperación eficiente de mezcla entre dos Heaps. Esta propiedad haceque se utilice como un mergeable heap, al igual que el Heap deFibonacci, en la implementación de una cola con prioridad quesoporte la operación de mezcla.
1
8/18/2019 Exposicion Binomial Heap
3/17
Bm he
∙ Un montículo binomial es una colección de árboles binomiales
∙ Árbol binomial, Bk , se define recursivamente:
1. B0 es un solo nodo
2. Bk consiste en dos árboles binomiales Bk-1 enlazados de lasiguiente forma: la raíz de uno es el hijo más a la izquierda de laraíz del otro.
3. Lo que es lo mismo que decir que un árbol binomial de orden k (Bk ) tiene un nodo raíz cuyos hijos son raíces de árbolesbinomiales de orden k-1, k-2… 2, 1, 0 en ese orden.
2
8/18/2019 Exposicion Binomial Heap
4/173
8/18/2019 Exposicion Binomial Heap
5/17
Bm ee - eddes
1. Tiene 2k nodos;
2. Su altura es k;3. Tiene nodos en el nivel i, para i = 0, 1, …, k;
4. La raíz tiene grado k (número de hijos) y es el nodo de máximogrado; más aún, si se numeran los hijos de la raíz de izquierda a
derecha como k – 1, k – 2, …, 0, el hijo i es la raíz de un subárbol B i .
4
8/18/2019 Exposicion Binomial Heap
6/17
Bm ee
5
8/18/2019 Exposicion Binomial Heap
7/17
Bm He
Un heap binomial es una secuencia de arboles binomiales tal que:
∙ Cada árbol esta heap-ordered.∙ Hay 0 ó 1 árbol binomial de orden k.∙ Las raíces de los arboles se conectan con una lista simplemente
enlazada con los grados en orden decreciente.
6
8/18/2019 Exposicion Binomial Heap
8/17
Mee
Es la operación mas sencilla e importante de esta estructura es launión de dos arboles binomiales (de un mismo grado) en un heapbinomial.
1. Se compara el nodo raíz de los arboles.2. La raíz mas pequeña se convierte en subarbol del mas grande.
function mergeTree(p, q)
if p.root.key
8/18/2019 Exposicion Binomial Heap
9/17
Mee
Unir dos heaps es la operación mas importante y puede ser usadacomo subrutina en la mayoria de aplicaciones.
1. Se recorren los heaps simultaneamente.
2. Si solo uno de los heaps contiene un árbol de orden k, este semueve al nuevo heap
3. Si ambos heaps tienen un árbol de orden k estos arboles se unen.
4. Si es necesario se une este nuevo árbol con otro de igual orden
8
8/18/2019 Exposicion Binomial Heap
10/17
Mee
function merge(p, q)while not (p.end() and q.end())
tree = mergeTree(p.currentTree(), q.currentTree())if not heap.currentTree().empty()
tree = mergeTree(tree, heap.currentTree())heap.addTree(tree)
heap.next(); p.next(); q.next()
9
8/18/2019 Exposicion Binomial Heap
11/17
Mee
10
8/18/2019 Exposicion Binomial Heap
12/17
Ise
El incertar un nuevo elemento se hace simplemente creando unnuevo heap con ese elemento y llamando a merge.
11
8/18/2019 Exposicion Binomial Heap
13/17
Fd mmum
Para encontrar el mínimo solo se tiene que buscar el mínimo entrelas raíces de los arboles. También se puede usar un puntero queapunte al mínimo entre los arboles, actualizándolo cuando serealice cada operación.
12
8/18/2019 Exposicion Binomial Heap
14/17
Deee mmum
1. Se encuentra el mínimo y se elimina obteniendo una lista de subarboles.
2. Se crea un nuevo heap con estos subarboles
3. Se une este nuevo heap con el heap original.
function deleteMin(heap)min = heap.trees().first()for each current in heap.trees()
if current.root < min.root then min = current
for each tree in min.subTrees()tmp.addTree(tree)
heap.removeTree(min)merge(heap, tmp)
13
D
8/18/2019 Exposicion Binomial Heap
15/17
Deese key
Cuando se disminuye la clave de un valor esta puede ser mayor quela de su padre, entonces se intercambian hasta que el nodo quedeen la posición correcta.
14
D
8/18/2019 Exposicion Binomial Heap
16/17
Deee
Para borrar un elemento simplemente se disminuye su clave amenos infinito (un valor inferior a cualquier elemento del heap), yluego se llama a eliminar el menor heap.
15
8/18/2019 Exposicion Binomial Heap
17/17
¿Pweus?
16