超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

树、二叉搜索树与堆

数据结构与算法基础#Python全栈#第五阶段#数据结构与算法基础#树、二叉搜索树与堆约 551 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

树的根、叶子、父子节点、深度和高度分别是什么?

追问 高度按边数还是节点数计算,应怎样在接口中明确?

二叉树与二叉搜索树有什么区别?

追问 左小右大的约束作用于直接子节点还是整棵子树?重复值如何约定?

前序、中序与后序遍历的访问顺序是什么?

追问 如何用一棵小树演示?递归与显式栈分别怎样记录待处理节点?

如何用队列实现二叉树层序遍历?

追问 如果按层分组返回,如何划定一层的节点数量?额外空间与什么有关?

如何计算二叉树的最大深度?

追问 空树、单节点与退化树如何处理?递归深度过大怎么办?

二叉搜索树查找是否一定是 O(log n)?

追问 平衡与退化树各有什么复杂度?顺序插入可能形成什么结构?

堆与已排序列表有什么区别?

追问 堆顶有序是否代表全部元素有序?为什么不能直接对堆列表做二分查找?

如何使用 heapq 管理最小堆?

追问 heapify、heappush 与 heappop 分别做什么,批量建堆与逐个插入如何分析?

如何使用大小为 k 的堆寻找前 k 个最大值?

追问 为什么可以使用最小堆?k 为零、大于输入长度与重复值时怎样约定?

如何设计任务优先队列,兼顾相同优先级的提交顺序?

追问 加入递增序号如何避免比较不可排序的任务对象?优先级更新要如何处理旧记录?

堆工具可参考 Python 官方 heapq 文档,使用时明确结果顺序与重复值规则。