Lecture 1:a. Correctnes b. Applets c. Tables Lecture 2 a.Applets b.Tables c.Exercises Lecture 3Lecture 4a.Appletsb. ProblemsLecture 5 Lecture 6 Lecture 7 Lecture 8 Test 1 Test 2

 

6.5-3 Write pseudocode for the procedures HEAP-MINIMUM, HEAP-EXTRACT-MIN, HEAPDECREASE- KEY, and MIN-HEAP-INSERT that implement a min-priority queue with a
min-heap.

HEAP-MINIMUM(A)
1
 
return A[1]
 
HEAP-EXTRACT-MIN(A)
1  
if heap-size[A] < 1
2               then error   "heap underflow"
3  
min A[1]
4  
A[1] ← A[heap-size[A]]
5  
heap-size[A] ← heap-size[A] - 1
6  
MIN-HEAPIFY(A, 1)
7  
return min
     
HEAP-DECREASE-KEY(A, i, key)
1  
if key > A[i]
2  
            then error "new key is smaller than current key"
3  
A[i] ← key
4  
while i > 1 and A[PARENT(i)] > A[i]
5  
           do exchange A[i] ↔ A[PARENT(i)]
6  
               i ← PARENT(i)
     
MAX-HEAP-INSERT(A, key)
1
heap-size[A] ← heap-size[A] + 1
2
A[heap-size[A]] ← ∞
3
HEAP-DECREASE-KEY(A, heap-size[A], key)

Para realizar el codigo de del Heap-Decrease-Key lo que se hace es intercambiar la compracion entre key y A[i], tambien lo hacemos con A[PARENT(j)] y A[j], en el Max-Heap-Insert modificamos el - ∞ por .

Algorithms | Blackboard | UNAL | SIA |Bibliotecas|UNALdotNET

Hosted by www.Geocities.ws

1