1

回転を実行してAVLツリーのバランスをとった後、挿入直後に、すべての親ノードのバランス係数を(適切には-1または1で)変更するにはどうすればよいですか?

AVLツリーの各ノードの構造は次のとおりです。

typedef struct _avlTree
{
 nutbolt part;
 int balanceFactor;
 struct _avlTree *left,*right;
} *avlTree;

ウィキペディアで与えられた定義に従ってバランス係数を設定しました。

各ノードに親ノードへのポインターが必要ですか?

4

2 に答える 2

2

各ノードの親ポインタが必要です。これは、ツリー構造を変更するたびに変更する必要があります。または、再帰によって自動的に、または反復的なアプローチがある場合は配列内で手動で、ルートから開始してすべての訪問済みノードを追跡する必要があります。

トピックの詳細な調査のためにこれを見逃してはいけません:

http://www.stanford.edu/~blp/avl/

于 2010-10-12T14:36:24.297 に答える
0

インスピレーションを得るためにAVLCライブラリをご覧ください。

于 2010-10-12T13:54:21.723 に答える