具有减少键和增加键操作的堆
HeapDict的Python项目详细描述
heapdict实现了可变映射abc,这意味着它工作得很好 很像普通的Python dict,它被设计成 优先级队列,按如下方式添加和使用项目:
hd = heapdict() hd[obj1] = priority1 hd[obj2] = priority2 # ... obj = hd.pop()
与普通dict相比,heapdict有以下区别:
- popitem():
- 移除并返回(键,优先级)对 优先级,而不是随机对象。
- peekitem():
- 返回优先级最低的(键,优先级)对,而不返回 取出。
与python标准库的heapq模块不同,heapdict 支持有效地改变现有对象的优先级 (教科书中常称为“减少键”)。更改优先级是 对于许多算法,如dijkstra算法和a*,都很重要。