ヒープの深さと各深さにおける要素数を求める方法について調べていますが、関数などを見つけることができず、どのように求めるべきかわかりません。

```

    import heapq
    a = [6, 3, 2, 4, 5]
    heapq.heapify(a)
    
```

例えば上記の場合、手で図を描いてみると、ヒープの深さ（０始まりとする）は最大で2となり、各深さにおける要素数は深さ0で1,
深さ1で2、深さ2で2となります。  
今回の例だと要素数5のヒープということができると思います。

heapsort()やheapq.heappush(heap,
item)、heapq.heappop(heap)などで、ソートや出し入れを行うことができますが、要素数nのヒープが与えられたときに、図を描かずにプログラムでヒープの深さと各深さにおける要素数を求める方法はあるのでしょうか。
CC BY-SA 4.0
2019-06-18T06:15:20.723
55894
2019-06-21T02:06:29.470
2019-06-21T02:06:29.470
32568
32568
question
python python3 アルゴリズム データ構造 ヒープ
要素数nのヒープの深さと各深さにおける要素数を求める方法について