原创作品,出自 “晓风残月xj” 博客,欢迎转载,转载时请务必注明出处(http://blog.csdn.net/xiaofengcanyuexj)。
由于各种原因,可能存在诸多不足,欢迎斧正!
最近开始了自己高级数据结构之旅,在这次旅行中,我将持续把一些高级的数据结构从理论到编码都过一遍,同时通过博客形式分享出来,希望大家指出不足之处!
本次所要学习的数据结构-主席树并不是什么新东西,不过是种线段树的变种,是一种可持久化的线段树;关于可持久化数据结构,一时找不到好的解释。下面是摘自大牛博客的解释:
可持久化数据结构
可持久化数据结构(Persistent data structure)就是利用函数式编程的思想使其支持询问历史版本、同时充分利用它们之间的共同数据来减少时间和空间消耗。
前面介绍过的伸展树就是一种典型的可持久化数据结构;本篇文章所要讲的主席树也是一种比较有特色的可持久化数据结构。关于可持久化数据结构,可以参考大牛博客:可持久化数据结构介绍 。
主席树
主席树就是利用函数式编程的思想来使线段树支持询问历史版本、同时