2016-03-25 16 views
-1

C++を使って赤黒とAVLツリーの実装を理解したいと思います。私はそれらについていくつかのウェブサイトをチェックしたが、それらのほとんどは複雑で理解しにくい。私にいくつかのリソースをお願いしますか?RedBlackとAVLツリーC++

+0

サイトのルールから: "私たちに推薦するかfを尋ねる質問スタックオーバーフローのために、書籍、ツール、ソフトウェアライブラリ、チュートリアル、その他のオフサイトリソースは話題にはなりません。代わりに、問題を説明し、それを解決するためにこれまでに何が行われているのか」「申し訳ありませんが、あなたの質問を編集してより具体的なことを試すことができます。 –

答えて

0

最初に2つのツリーの基本プロパティを読み取ります。 1つのプログラミング言語に限定する必要はありません。これらのプロパティを理解している場合は、どの言語でも自分で実装することができます。赤黒木の

プロパティ:

  1. ノードは赤か黒のどちらかです。
  2. 根は黒です。このルールは省略されることがあります。ルート は常に赤から黒に変更することができますが、必ずしもその逆ではありません。 このルールは分析にほとんど影響しません。
  3. すべての葉(NIL)は黒です。
  4. ノードが赤の場合、その子は両方とも黒です。
  5. 与えられたノードから子孫NILノードのいずれかまでのすべてのパス は、同じ数の黒ノードを含みます。いくつかの定義:ルートからノードまでの黒いノードの数はノードの黒の深さである です。ルートからリーフまでのすべての パスのブラックノードの均一な数は、 赤黒のツリーの黒い高さと呼ばれます。

赤黒木C++コード: http://www.sanfoundry.com/cpp-program-implement-red-black-tree/

AVL木チュートリアル: https://www.youtube.com/watch?v=rwzuze_tTwQ

AVL木C++コード: https://tfetimes.com/c-avl-tree/