优先队列和队列的不同之处在于队列是按照“先进先出”的规则取数据,而优先队列是按照元素的优先级取出元素。
优先队列其实就是堆,它有以下性质:
- 若是大根堆,则任意结点大于它的所有子孙结点,最大元在堆的根上;若是小根堆,则任意结点小于它的所有子孙结点,最小元在堆的根上。
- 堆是一棵完全二叉树(除了最底层,其他层的结点都被元素填满,且最底层尽可能地从左到右填入)
优先队列的主要操作是插入和删除最小元素(元素的值本身为优先级键值,小元素享有高优先级)。
参考资料:python数据机构之堆(heap)
优先队列和队列的不同之处在于队列是按照“先进先出”的规则取数据,而优先队列是按照元素的优先级取出元素。
优先队列其实就是堆,它有以下性质:
优先队列的主要操作是插入和删除最小元素(元素的值本身为优先级键值,小元素享有高优先级)。
参考资料:python数据机构之堆(heap)