【算法导论】第十一课 扩充的数据结构、动态有序统计和区间树

本节课主要讲了如何构造自己想要的数据结构,或者扩充已有数据结构的功能,以实现想要的特定功能


比如设计一个动态结构,满足功能寻找第k大的数

其做法是维护每个结点的子结点个数来推导其秩,而不维护其秩,因为动态操作会使得其难以维护
红黑树的插入操作 1.树插入 2.rebalance


构造自己需要的扩充数据结构的基本流程

1.选择一个基本的数据结构 例如红黑树
2.决定要添加到结点的基本信息  例如实现查询第k大数功能,应添加的基本信息为所有子树结点之和,而非直接保存该结点键值的秩
3 维持 插入+旋转/删除+旋转

4 封装为函数,实现其功能


后面又介绍了一种区间树,其实相关的数据结构还有很多,包括线段树及其各种变体、名次树、主席树等等,其主要思想都是维护一些额外的信息,去实现想要的功能,之后我会实时更新一些例子
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值