本节课主要讲了如何构造自己想要的数据结构,或者扩充已有数据结构的功能,以实现想要的特定功能
比如设计一个动态结构,满足功能寻找第k大的数
其做法是维护每个结点的子结点个数来推导其秩,而不维护其秩,因为动态操作会使得其难以维护
红黑树的插入操作 1.树插入 2.rebalance
构造自己需要的扩充数据结构的基本流程
1.选择一个基本的数据结构 例如红黑树
2.决定要...
分类:
编程语言 时间:
2015-04-27 09:50:44
阅读次数:
182
在编程中,我们往往使用已有的数据结构无法解决问题,这是不必要急着创建新的数据结构,而是在已有数据结构的基础上添加新的字段。本节在上一次笔记红黑树这一基础数据结构上进行扩展,得出两个重要的应用—动态顺序统计和区间树。
动态顺序统计
在算法系列笔记2中我们在线性时间内完成了静态表的顺序统计,而这里我们在红黑树上进行扩展,在O(lgn)时间内完成该操作,主要包括返回第i
排名的元素o...
分类:
编程语言 时间:
2015-02-03 23:00:43
阅读次数:
342