Python的内置树数据结构: heapq 模块
heapq模块是Python中用于实现堆数据结构的模块。堆数据结构类似于二叉树,但是它的每个节点存储的值都必须大于等于/小于等于其子节点。在Python的heapq模块中,我们可以使用heappush和heappop函数来实现将元素加入堆和从堆中弹出元素的操作。同时,heapq模块还提供了一些其他的函数,如heapify和heappushpop等。
下面是一个简单的示例代码,演示了如何使用heapq模块对整数列表进行堆排序:
import heapq # 定义一个整数列表 nums = [23, 5, 89, 12, 54] # 使用heapify函数将列表转为堆 heapq.heapify(nums) # 依次弹出堆中的元素,即为排序后的结果 sorted_nums = [] while nums: sorted_nums.append(heapq.heappop(nums)) print(sorted_nums)
输出结果为:[5, 12, 23, 54, 89]
下面是一个使用字符串作为例子的代码演示,演示了如何使用heapq模块对字符串列表进行堆排序:
import heapq # 定义一个字符串列表 strs = ['pidancode.com', 'hello', 'world', 'python', '皮蛋编程'] # 使用heapify函数将列表转为堆 heapq.heapify(strs) # 依次弹出堆中的元素,即为排序后的结果 sorted_strs = [] while strs: sorted_strs.append(heapq.heappop(strs)) print(sorted_strs)
输出结果为:['hello', 'pidancode.com', 'python', '皮蛋编程', 'world']
相关文章