Sを整数の動的セットとします。 n = | S |とする。 Sのデータ構造を に記述すると、必要な性能保証を備えたSの次の操作がサポートされます。trailingalの順にavlツリー
•新しい要素をO(log n)時間に挿入します。
•O(log n)時間内にSから要素を削除します。
•1≤k≤nを満たす任意のkに対して、O(k)時間内にSのk個の最小要素を報告します。
あなたの構造は常にO(n)スペースを消費しなければなりません。
私は単純にAVLツリーを構築し、最初の3つの要素を横断的に印刷するためにプリフォームできますか?
'AVLツリーを単純に構築して、最初の3つの要素を順序通りのトラバーサルを使って印刷できますか?これは100万要素でどれくらいの時間を要しますか?百万人? [Googolplex](https://en.wikipedia.org/wiki/Googolplex)? – greybeard
標準的な答えは、バランスのとれたスレッドバイナリ検索ツリーです。これは、リーフノードでNULLポインタを使用するBBSTです。これらは、ソートされた順序でリンクされたリストの近くのノードに接続します。それは、挿入または削除(ノードタッチごとに一定の時間)ごとにO(ログn)だけの追加時間でポインタを維持できることがあります。 O(k)時間に最初のk個のノードをリストの先頭からたどることでリストすることができます。 http:// adtinfoにはかなり美しい実装があります。org/ – Gene