2012-04-10 8 views
0

古いノードベースの実装ではなく、バイナリツリーの配列ベースの実装を使用すると、速度/空間/一般的なパフォーマンスが向上しますか?私は回転や配列ベースのツリーの他の複雑な変更は恐ろしいだろうが、単純なバイナリツリー実装の場合は、配列を使って行うほうが良いと言いますか?アレイを使用したバイナリツリーの表現

答えて

0

私はあなたがBinary Heapを探していると思います。

+0

ええ、私はabotヒープを知っていますが、ノードベースの実装よりもスペース/パフォーマンスが向上していますか? – Bober02

+1

あなたは確かにスペースで利益を得ることができます。なぜなら、それは主にどのような種類の操作をデータにするかによって、パフォーマンスに関してはポインタ(ノードあたり2つ)を保存する必要がないからです。 _heap_はバイナリツリーを格納するのに使うことができますが、正確には同じものではありません(バイナリツリーにはない制約が適用されているからです) – Jack

+1

ヒープと同様にバイナリツリーを作ることができると思います配列の助けを借りて。削除のみが難しいです... – Bober02

0

アレイベースのバージョンではヒープ割り当ては使用されないため、キャッシュに収まる可能性が高く、トラバースに必要な読み込み速度を上げるためにポインタの計算が簡単になります。コンパイル時にサイズが制限されている場合は、より高速な解決方法です。

関連する問題