标签: #数据结构与算法

【占坑】Go语言进阶:从零实现跳表

本文记录基于Go语言实现跳表的完整过程,旨在通过实践深入理解跳表数据结构的核心原理与优化思路。跳表作为一种高效的概率平衡数据结构,通过多层索引实现快速查找、插入及删除操作,时间复杂度可达O(log n)。文中详细阐述了跳表的节点设计、层级构建逻辑及核心算法实现,包括随机层级生成、节点遍历与更新等关键步骤。目前已完成代码开发,相关实现已同步至GitHub仓库,可供参考学习,助力开发者掌握Go语言与高级数据结构的结合应用。

实验:伯克利CS61B-BSTMap实现

本文记录了伯克利CS61B课程Lab7中基于二叉搜索树(BST)的Map实现。BSTMap继承Map61B接口,通过内部BSTNode维护key、value及size属性,核心采用递归设计。实现要点包括:put操作时递归插入并更新节点size;size直接返回节点size属性,避免重复计算;删除操作分类处理(无子节点直接删除、单子节点替换、双子节点用右子树最小节点替换),需辅助函数removeMin和min;keySet通过先序遍历生成HashSet;iterator直接返回keySet迭代器。整体通过递归和size维护实现高效操作,体现了BST的经典应用。