码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-27 09:50:44      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

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


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

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


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

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

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


后面又介绍了一种区间树,其实相关的数据结构还有很多,包括线段树及其各种变体、名次树、主席树等等,其主要思想都是维护一些额外的信息,去实现想要的功能,之后我会实时更新一些例子

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

标签:

原文地址:http://blog.csdn.net/lth404391139/article/details/45295587

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!