データ構造-3ツリー(下)

1ヒープ

1.1ヒープとは

ここに画像の説明を挿入
2つの基本的な操作が必要です:挿入;最大(小さい)値の削除
ここに画像の説明を挿入
ここに画像の説明を挿入

検索ツリーの利点:ノードの挿入はツリーの高さに関連します。ノードの削除、つまり、左端または右端の最大値または最小値を削除するため、検索の時間効率が向上します。それは、ツリーベースの身長挿入または削除されているかどうかをツリー
あなたが最大のものを毎回削除する場合は、右端のノードを毎回削除、ツリーが曲がっさせると、木の高さは、ログインしなくなった2 n個の。だから、
どのようにバイナリ検索ツリーを使用せずに構造のバランスをとるには、完全なバイナリツリーを使用するのが最善の方法です
。ヒープの特徴の1つ:完全なバイナリツリーストレージを使用すると、ノードはその左の値よりも大きくなり、右のサブツリー
ここに画像の説明を挿入
ここに画像の説明を挿入

1.2ヒープの抽象データ型の説明

ここに画像の説明を挿入

1.3最大ヒープ操作

作成する

ここに画像の説明を挿入
ヒープ内の最初のデータの格納は、配列の添え字が1で、添え字が歩哨として0の位置から始まります
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
。35を挿入すると、順序が壊れ、35> 31になるため、
ここに画像の説明を挿入
35と31を調整する必要があります。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
挿入後の位置の交換58、58> 31,58および31
トランスデューサーの完了後の交換、58> 44、58および44交換可能
ここに画像の説明を挿入

インサート

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
下付き文字が1の場合、比較を続行する必要がないため、

for(;H->Elements[i/2]<item && i>1;i/=2)
	H->Elements[i]=H->Elements[i/2];
//每次把节点和item比较,若小于,则把它的值赋给它的子节点

また、センチネルH-> Elements [0] = MaxDataがある場合は、上記と1つの条件を考慮する必要はありません。
ここに画像の説明を挿入
ここに画像の説明を挿入

削除

ここに画像の説明を挿入
最大値を削除します。つまり、53を
削除し
ここに画像の説明を挿入
ます。削除、最後の値31をルートノードコピーします。
ここに画像の説明を挿入
2 <= H->サイズ:左の子があるかどうかを確認します。
子=親
2:左の子が最大の、
そして判断を行い、最大の子を見つける
子を= H->サイズ:!makeは必ず彼が右の息子がいます
ここに画像の説明を挿入
ここに画像の説明を挿入

最大ヒープ確立

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
上の図は、調整が必要なヒープではありません。
息子のある最後のノードには、左または右の息子が1つしかないため、この部分をヒープに調整してから
、前のノードを順番に調整できます。
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

2ハフマンツリーとハフマンコーディング

2.1ハフマンツリーとは

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

2.2ハフマンツリーの構造

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
最小の2つを選択する方法は?

  • ヒープ
  • ソート

ここに画像の説明を挿入
合計Nサイクル、毎回logNを超えない
ここに画像の説明を挿入
ここに画像の説明を挿入

2.3ハフマン符号化

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
最小限のコストと明確な
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

3セットと操作

3.1セットの表現

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

3.2セット操作

ここに画像の説明を挿入
ここに画像の説明を挿入
例:検索
ここに画像の説明を挿入
ここに画像の説明を挿入
の労働組合、2を5連続することはますます高くツリーを行いますと、検索効率が徐々に低下しますので、そこに次の解決策は以下のとおりです(ただし、ツリー内のノードの数を知っておく必要があります)
ここに画像の説明を挿入
、親ので、ルートノードのを強調する必要がない場合は、ツリー
ここに画像の説明を挿入
ここに画像の説明を挿入
b内のノードの数に変更して、aに掛けることができます。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_42713936/article/details/105733238