知识手册

数据结构

从栈、队列与链表的操作契约出发,学习集合合并、优先级维护和区间查询,再进阶到平衡树、历史版本与动态树。选型时列清查询与修改,再比较时间、空间和实现成本。

59 个条目

数据结构基础

先用线性结构练习不变量与边界处理,再按访问顺序、区间统计和特殊约束选择结构;单调性往往能省去反复搜索。

并查集

围绕代表元维护集合的合并与归属查询,理解路径压缩、按秩合并及其复杂度;先确认问题是否只需合并而不需拆分。

从反复取最值的需求出发,比较二叉堆与可并堆,关注插入、删除最值和合并操作各自的代价。

块状数据结构

把整体维护拆成整块统计与边界扫描,通过块大小平衡查询和修改;进一步比较数组、链表与树上的分块方式。

线段树

先明确区间信息如何合并、修改标记如何复合,再学习合并分裂与特殊维护方式;不同变体需要分别检查适用条件。

二叉搜索树 & 平衡树

从有序集合的查找、插删和排名出发,比较旋转、随机优先级与重构等维护策略,区分最坏与均摊复杂度。

可持久化数据结构

把一次修改视为新版本的创建,理解结点共享与路径复制,并核算版本数量、查询能力和内存增长。

树套树

将位置与值域等多个维度分层维护,先确定内外层各负责什么操作,再估算嵌套后的时间和空间成本。

动态树

围绕树上路径、子树信息与结构变化选择表示,比较辅助树和遍历序列的维护方式,并逐项确认连接、断边等操作的支持范围。

目录与参考:OI Wiki原站版权声明

输入关键词开始搜索。