of {$slidecount} ½ {$title} ATZJG.NET {$author}

首页






高级数据结构及其实践
自顶向下伸展树
红黑树(Red Black Tree)
确定性跳跃表
AA树
treap树
k-d树
配对堆(pairing heap)


Haifeng Xu


(hfxu@yzu.edu.cn)

This slide is based on Mark Allen Weiss's book.
中译本是《数据结构与算法分析 C++ 描述》张怀勇等译

目录

本章内容

讨论7种强调实用的数据结构

首先考察第4章讨论过的 AVL 树的变种, 包括优化的伸展树、红黑树、(第10章讨论过的)跳跃表的确定性的形式、AA 树以及 treap 树.

然后考察一种可以用于多维数据的数据结构. 在这种情况下, 每一项均可有多个键. $k$-d 树对任何键都能进行相关的搜索.

最后, 考察配对堆(pairing heap), 它似乎是斐波那契堆的最实用变体.

自顶向下伸展树

自顶向下伸展树

第4章讨论了基本的伸展树操作. 当顶 $X$ 作为树叶被插入时, 称为{\bf 伸展(splay)}的一系列的树旋转使得 $X$ 成为树的新根.

伸展操作也在查找期间执行, 而且如果一项也没有找到, 那么就要对访问路径上的最后的结点施行一次伸展.

第11章指出一次伸展树操作的摊还开销为 $O(\log N)$.

红黑树

红黑树(Red Black Tree)

历史上流行的 AVL 树的另一变种是红黑树(Red Black Tree). 红黑树是 Rudolf Bayer 在1972年发明的. 当时被称为平衡二叉 B 树(symmetric binary B-trees). 后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。

End






Thanks very much!

This slide is based on Jeffrey D. Ullman's work, which can be download from his website.