Treap的方法与应用河南省实验中学郭家宝
Treap的方法与应用
河南省实验中学郭家宝
关键词
Treap数据结构平衡树动态统计
摘要
Treap是一种编写容易,时间高效的一种平衡二叉查找树。本文分析了Treap的平衡性,介绍了Treap的构造方法与技巧,并与其他各种平衡树进行了比较,体现了Treap的优越性,并通过例题介绍了Treap在信息学竞赛中广泛的应用。
说明
本文写作的目的
Treap作为被广泛应用的一种平衡树数据结构,一直以来许多人都在研究或想要研究。但笔者经历多番查找资料,很难找到一个关于Treap的系统性、总结性而又简明易懂,适合初学者阅读的论文。本文想通过对Treap的介绍,起到抛砖引玉的作用。欢迎大家指正和批评。
本文适合的读者
信息学奥林匹克选手计算机或相关专业的大学生对计算机算法、数据结构感兴趣的读者
阅读本文所需掌握的预备知识
基础的数学知识计算机操作方法程序设计语言基本算法基本数据结构堆栈、队列、二叉树
目录
11一序言我们为什么要排序
f213211232123311221234312412345678941
基于比较的排序基于比较的排序的三种手段二叉查找树二二叉查找树二叉查找树的定义、遍历与查找定义遍历查找二叉查找树的插入与删除插入删除二叉查找树的平衡性问题讨论三Treap什么是TreapTreapTreeHeap为什么平衡如何构建Treap旋转遍历和查找插入删除为什么要用TreapTreap的特点Treap与其他平衡树的比较Treap的更多操作与技巧懒惰删除查找最值前驱与后继合并重复节点Treap中元素的类型与排序的规则维护子树大小的必要性查找第k小元素求元素的排名维护附加关键字四Treap的应用Treap在动态统计问题中的应用
f234125123
Treap在搜索问题中的应用Treap在动态规划问题中的应用Treap与其他数据结构的相关应用优先队列的实现数据结构的复合树套树五结语总结感谢参考资料
一、序言序言1我们为什么要排序
Treap是用来排序排序Sort的一种数据结构数据结构DataStructure。在讨论Treap之前,让我们先讨论一排序数据结构下,我们为什么要排序?当我们看到世间万物的时候,是否想探究其内在的规律,是否想了解自然的顺序?也许你认为,排序当然是必要的,我给出我认为需要排序的三点理由:
1
有序的事物符合人类大脑结构你可以轻易地一眼看清少于6个物体,更多的话就需要数了。在有序的事物中,你可以很快得找到需要的信息,因为有序的事物符合人类大脑的认识规r