20 lines
849 B
Forth
20 lines
849 B
Forth
> let testseq = [| (3u, "Clear drains");
|
|
(4u, "Feed cat");
|
|
(5u, "Make tea");
|
|
(1u, "Solve RC tasks");
|
|
(2u, "Tax return") |] |> Array.toSeq
|
|
let testpq = testseq |> MinHeap.fromSeq
|
|
testseq |> Seq.fold (fun pq (k, v) -> MinHeap.push k v pq) MinHeap.empty
|
|
|> MinHeap.toSeq |> Seq.iter (printfn "%A") // test slow build
|
|
printfn ""
|
|
testseq |> MinHeap.fromSeq |> MinHeap.toSeq // test fast build
|
|
|> Seq.iter (printfn "%A")
|
|
printfn ""
|
|
testseq |> MinHeap.sort |> Seq.iter (printfn "%A") // convenience function
|
|
printfn ""
|
|
MinHeap.merge testpq testpq // test merge
|
|
|> MinHeap.toSeq |> Seq.iter (printfn "%A")
|
|
printfn ""
|
|
testpq |> MinHeap.adjust (fun k v -> uint32 (MinHeap.size testpq) - k, v)
|
|
|> MinHeap.toSeq |> Seq.iter (printfn "%A") // test adjust;;
|