Найти медиану в O (1 )в двоичном дереве

Предположим, у меня есть сбалансированное BST (бинарное дерево поиска ). Каждый узел дерева содержит специальное поле count, в котором подсчитываются все потомки этого узла + сам узел. Они называют эту структуру данных order statistics binary tree.

Эта структура данных поддерживает две операции O (logN ):

  • rank(x)--. количество элементов меньшеx
  • findByRank(k)--найти узел с rank==k

Теперь я хотел бы добавить новую операцию median()для нахождения медианы. Могу ли я предположить, что эта операция O (1 ), если дерево сбалансировано?

5
задан Michael 10 August 2012 в 17:42
поделиться