We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
mergeHeaps
1 parent dcdd9d2 commit e55f680Copy full SHA for e55f680
src/Year2013/Exam.hs
@@ -31,8 +31,13 @@ extractMin :: Ord a => BinHeap a -> a
31
extractMin = minimum . map key
32
33
mergeHeaps :: Ord a => BinHeap a -> BinHeap a -> BinHeap a
34
-mergeHeaps
35
- = undefined
+mergeHeaps h1@(t1 : ts1) h2@(t2 : ts2)
+ | r1 < r2 = t1 : mergeHeaps ts1 h2
36
+ | r1 > r2 = t2 : mergeHeaps h1 ts2
37
+ | otherwise = mergeHeaps [combineTrees t1 t2] (mergeHeaps ts1 ts2)
38
+ where
39
+ (r1, r2) = (rank t1, rank t2)
40
+mergeHeaps h1 h2 = h1 <> h2 -- > To reach here, one of the heaps must be empty
41
42
insert :: Ord a => a -> BinHeap a -> BinHeap a
43
insert
0 commit comments