【发布时间】:2012-08-12 04:39:42
【问题描述】:
假设我有一个平衡的 BST(二叉搜索树)。每个树节点都包含一个特殊字段count,它计算该节点的所有后代+节点本身。他们称这种数据结构为order statistics binary tree。
该数据结构支持O(logN)的两种运算:
-
rank(x)-- 小于x的元素数量 -
findByRank(k)-- 找到rank==k的节点
现在我想添加一个新操作median() 来查找中位数。如果树是平衡的,我可以假设这个操作是 O(1) 吗?
【问题讨论】:
-
我认为中位数是树的根
-
我同意吉尔。但这只有在树完全平衡的情况下才是正确的。
标签: algorithm data-structures language-agnostic binary-search-tree