14. 数据结构的扩张
一些工程应用需要的只是教科书中的标准数据结构,也有许多其他的应用需要对现有数据结构进行少许的创新和改造,但只有很少的情况需要创造全新类型的数据结构。
更经常的是,通过存储额外信息的方法来扩张标准的数据结构,然后对这种数据结构编写新的操作来支持所需要的应用。
比如:
动态顺序统计量
之前我们讨论了中位数和顺序统计量,对于一个无序的集合,我们可以在 O ( n ) \Omicron(n) O(n)的时间内确认任何顺序统计量。这里我们将介绍如何修改红黑树,使得可以在 O ( lg n ) \Omicron(\lg n) O(lgn)时间内确认任何的顺序统计量。以及如何在O(lgn)时间内得到一个元素的秩,即它在集合线性序中的位置。
下图展示了一种支持快速顺序统计的数据结构&