手がかり二分木の基本

関連する概念

なんらかの方法でバイナリツリーをトラバースした結果は、ノードの線形シーケンスです。
空のチェーンドメインを変更して、ノードを指す先行ノードと後続ノードのアドレスを格納します。
手がかり:バイナリリスト内のnullポインターフィールドの「先行ノード」と「後続ノード」を参照するポインターはスレッドと呼ばれます。
スレッド化:バイナリリスト内のノードの空のチェーンフィールドにその先行ノードを格納しますまたは、情報を引き継ぐプロセスを手掛かりと呼びます。
手がかり二分木:手がかりを持つ二分木は、手がかり二分木と呼ばれます。
明らかに、手がかり二分木は、使用されるトラバーサル法に関連しており、事前注文手掛かり二分木、中次手掛かり二分木、およびポスト順手掛かり二分木があります。
ここに画像の説明を挿入
中間シーケンス:
D、B、H、E、A、F、C、G

ノード構造

ここに画像の説明を挿入

LTag = 0、lchildフィールドは左の子を指しますか?LTag = 1、lchildフィールドはその前の
子を指しますRTag = 0、rchild フィールドは右の子を指します?RTag = 1、rchildフィールドはその後続を指します

手がかり二分木は物理的な構造です

論理構造:コレクション、線形、ツリー、グラフ
物理構造:線形ストレージと非線形ストレージ
これらの中で、線形ストレージ構造には、シーケンシャル(シーケンシャル)、リンク(リンク)、インデックス(インデックス)、ハッシュ(ハッシュ)の4種類の構造
非線形があります。ストレージ構造には、ツリーストレージ構造、グラフィックストレージ構造が含まれます。

nノードの手がかり二分木では、手がかりの数はn + 1です。

n個のノードの手がかりバイナリツリーには、2n個のポインタ、n-1個の子ポインタがあり、残りは手がかりポインタです。

手がかりの二分木のシーケンスを構築するプロセス:

この走査方法でバイナリツリーを走査します。
走査中に、現在アクセスされているノードの左および右のポインターフィールドが空かどうかを確認します。
左のポインターフィールドが空の
場合は、前駆ノードの手掛かりに変更します。右のポインターフィールドが空の場合は、次のように変更します。後続のノードを指す手がかり。

横断的な手がかりに基づくバイナリツリー

特定の順序の手掛かりバイナリツリーを走査するには、順序の下の開始ノードから開始し、順序の下のノードの後続ノードをヘッドノードまで繰り返し検索します。

公開された28元の記事 ウォンの賞賛2 ビュー3259

おすすめ

転載: blog.csdn.net/Maestro_T/article/details/84190847