Python的内置树数据结构: heapq 模块

2023-04-11 00:00:00 python 模块 数据结构

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']

相关文章