bit tree
max heap
priority queue