虚二叉树是处理统计问题的一种利器,它的最大优势就是编程无比简单。在需要统计的数据严格在某一范围内时,使用虚二叉树可以大大简化编程,但这也是虚二叉树的弱点,就是必须知道事先的数据范围,而且这个范围不能太大,必须能开一个相当的数组。
虚二叉树一般的应用方法在每个节点处保存其左子树加上自身的节点数。在插入时,采用非常类似二分查找的实现方法,若目标节点在当前节点的左子树或自身(x<=m),则++tree[m];在统计某节点的rank时,若目标节点在当前节点的右子树或自身(x>=m),则++tot。
2002年李睿的论文讲到了这个,说的还是很明了的。
程序:star.cpp
(Ural 1028 )