Puzzle 4: Explanation
Here’s how min heaps work in Python.
We'll cover the following...
Try it yourself
Execute the code below to verify the result:
Press + to interact
from heapq import heappush, heappoptasks = []heappush(tasks, (30, 'work out'))heappush(tasks, (10, 'wake up'))heappush(tasks, (20, 0xCAFFE))heappush(tasks, (20, 'feed cat'))heappush(tasks, (40, 'write book'))while tasks:_, payload = heappop(tasks)print(payload)
Explanation
The built-in heapq
module implements min-heap over lists. It’s common to use a heap for a priority queue. Pushing and deleting from the heap are log(N)
operations, and the first item in the heap (tasks[0]
) is always the ...