您现在的位置:首页 --> 查看专题: tree
treap 是一个很有意思的数据结构,从名字也能看得出来,它是 tree 和 heap 的混合产物。为什么会有这么一个数据结构还得从二叉树(BST)说起。 我们都知道,普通的二叉树是不平衡的,在某些情况下进行插入删除操作可以导致时间复杂度从 O(logN) 下降到 O(N)。为了解决平衡的问题,有很多新的二叉树被引入,比如大家熟知的一些:Linux 内核中 CFS 使用到的红黑树(Red-black tree),数据结构课上都会讲到的 AVL 树。这些树都因为要进行复杂的旋转操作而不容易实现。 那么有没有一个实现容易的平衡二叉树呢?Treap 就是一个。普通的二叉树节点只有 key,而 treap 又多了一个 priority,这里的 priority 就是 heap (优先队列)中的 priority。这样, treap 既可以利用二叉树的特性,又可以利用 heap 的特性了。
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[69] Java开发岗位面试题归类汇总
-
[66] Go Reflect 性能
-
[64] 如何拿下简短的域名
-
[63] IOS安全–浅谈关于IOS加固的几种方法
-
[61] android 开发入门
-
[61] 【社会化设计】自我(self)部分――欢迎区
-
[61] Oracle MTS模式下 进程地址与会话信
-
[50] 图书馆的世界纪录
-
[49] WEB系统需要关注的一些点
-
[47] Twitter/微博客的学习摘要
赞助商广告