ホームページ  >  記事  >  Java  >  AVL ツリー

AVL ツリー

王林
王林オリジナル
2024-07-25 08:04:13621ブラウズ

AVL Trees

AVL ツリーは平衡二分探索ツリーです。この投稿では二分探索ツリーが紹介されました。バイナリ ツリーの検索、挿入、削除にかかる時間は、ツリーの高さによって異なります。最悪の場合、高さは O(n) になります。木が完全にバランスがとれている、つまり完全な二分木である場合、その高さは log n です。完璧にバランスの取れた木を維持できるでしょうか?はい、しかしそうするとコストがかかります。妥協案は、バランスのとれたツリーを維持することです。つまり、すべてのノードの 2 つのサブツリーの高さがほぼ同じになります。

AVL ツリー はバランスが取れています。 AVL ツリーは、1962 年に 2 人のロシアのコンピューター科学者、G. M. Adelson-Velsky と E. M. Landis によって発明されました (そのため AVL という名前が付けられました)。 AVL ツリーでは、すべてのノードの 2 つのサブツリーの高さの差は 0 または 1 です。 AVL ツリーの最大の高さは O(log n) であることがわかります。

AVL ツリーで要素を挿入または削除するプロセスは、挿入または削除操作の後にツリーの再バランスが必要になる場合があることを除いて、通常の二分探索ツリーと同じです。ノードのバランス係数は、右のサブツリーの高さから左のサブツリーの高さを引いたものです。ノードのバランス係数が -10、または 1 の場合、ノードは バランスが取れている と言われます。ノードは、バランス係数が -1 の場合は 左ヘビー とみなされ、バランス係数が +1 の場合は 右ヘビー とみなされます。 .

以上がAVL ツリーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:AVLTree クラス次の記事:AVLTree クラス