image

Python中优先队列的实现


writerlIcht                      emaillIcht.gzl@gmail.com                 date:  2019.9.22

 

 

9

        优先队列是一种类似于队列和栈的数据结构,与之根本的区别是后者的存取顺序是进入队列或者栈的时间顺序来确定的,但是优先队列的出入操作是根据队列中优先值的大小来实现的。优先级最高的元素将被第一个执行,而不是像队列FIFO和栈LIFO里面的完全根据最先进入或者最后进入的顺序进行操作。有了优先级的概念,如果按照优先级将所有元素进行排序后进行操作则对操作的时间和空间复杂度要求过高,完全没必要。所有优先队列的实现借助了完全二叉树和列表两种数据结构的特定,并根据自身的需求提出了二叉堆这一更加简洁的数据结构,基于二叉堆,优先队列的实现将更加容易,本例中将优先级整数数值来衡量元素的优先值大小。

 

二叉堆实现优先队列