あ
二分木
Inkscape vs Gimp
違いがある 二分木の種類 しかし、ここではその違いについて説明します。 完全な二分木 そして 完全なバイナリ ツリー 。
完全なバイナリ ツリー:
完全なバイナリ ツリーとは、次のようなバイナリ ツリーです。 すべてのノードには 0 または 2 の子孫があります 。言い換えると、完全なバイナリ ツリーは、リーフ ノードを除くすべてのノードに 2 つの子孫があるバイナリ ツリーです。
完全なバイナリ ツリー
させて、 私 内部ノードの数になります
n ノードの総数になります
私 葉の数になる
私 レベル数になるそれから、
葉の数は、 (i + 1) 。
ノードの総数は (2i + 1) 。
内部ノードの数は (n – 1) / 2 。
葉の数は、 (n + 1) / 2 。
ノードの総数は (2l-1) 。
内部ノードの数は (l – 1) 。
葉の数は最大で (2私- 1) 。
完全なバイナリ ツリー:
二分木とは、 完全な二分木 おそらく最後のレベルを除くすべてのレベルに可能なノードの最大数があり、そのすべてのノードが 最後のレベルはできるだけ左に表示されます 。
完全な二分木
ここからわかるポイントは2つあり、
- リーフ ノードの左端は常に最初に入力する必要があります。
- 最後の葉ノードに正しい兄弟がある必要はありません。
完全なバイナリ ツリーをよりよく理解するには、次の例を確認してください。
Beatsヘッドフォンをペアリングする方法
例 1:
完全でも完全でもない
- ノード C 子供が一人しかいないので、 完全なバイナリ ツリーではありません。
- ノード C また、右の子はありますが、左の子はありません。したがって、 また、完全なバイナリ ツリーでもありません。
したがって、上に示した二分木は次のようになります。 完全なバイナリ ツリーでも完全なバイナリ ツリーでもありません。
例 2:
bash 読み取りファイル完全だが完全ではない
- すべてのノードには次のいずれかが備わっています。 0 または 2 したがって、子孫は、 それは完全なバイナリツリーです 。
ノードが存在するため、完全なバイナリ ツリーではありません。 B ノードには子がありませんが、 C には子があり、完全なバイナリ ツリーによれば、ノードは 左側 。したがって、上に示した二分木は 完全なバイナリ ツリー そしてそれは 完全なバイナリ ツリーではありません。
例 3:
完了しているが完全ではない
すべてのノードが満たされたままであるため、これは完全な二分木です。
- したがって、ノード B には子が 1 つだけあります。 完全なバイナリ ツリーではありません。
したがって、上に示した二分木は 完全な二分木 そしてそれは 完全なバイナリ ツリーではありません。
例 4:
完全かつ完全
- それは 完全なバイナリ すべてのノードが 満たされたまま 。
- すべてのノードには次のいずれかが備わっています。 0 または 2 子孫、 したがって、それは 完全なバイナリツリー 。
したがって、上に示した二分木は次のようになります。 完全なバイナリ ツリーと完全なバイナリ ツリーの両方。
はい・いいえ。 | 完全なバイナリ ツリー | 完全なバイナリ ツリー |
1. | 完全なバイナリ ツリーでは、最終レベルのノードは子を 1 つだけ持つことができます。 | 完全なバイナリ ツリーでは、ノードが子を 1 つだけ持つことはできません。 |
2. | 完全な二分木では、ノードは左から右に埋められる必要があります。 | 完全なバイナリ ツリーではノードを埋める順序はありません。 |
3. | 完全なバイナリ ツリーは、主にヒープベースのデータ構造で使用されます。 | 完全なバイナリ ツリーにはそれ自体の用途はありませんが、適切なバイナリ ツリーとも呼ばれます。 |
4. | 完全な二分木は、ほぼ完全な二分木とも呼ばれます。 | 完全なバイナリ ツリーは、適切なバイナリ ツリーまたは 2 ツリーとも呼ばれます。 |
5 | 完全なバイナリ ツリーでは、葉ノード全体がまったく同じ深さになければなりません。 | 完全なバイナリ ツリーでは、リーフ レベルが同じ深さである必要はありません。 |