バイナリツリーの証明には、最大で葉があります


14

ノードを持つ二分木が最大で葉を持っていることを証明しようとしています。誘導でこれを行うにはどうすればよいですか?n⌈n2⌉

ヒープに関する最初の質問でフォローしていた人々のために、それはここに移動されました。


3
まず、ここでLaTeXを使用できることに注意してください。[編集]をクリックして、どのように処理したかを確認します。第二に、誘導は見られません。周りにいくつかの数字を投げていますが、証明構造もヒープとの関係もまったくありません。改善できますか?そして最後に、この主張は間違っています。ソートされたリストはヒーププロパティを満たし、リーフは1つしかありません。いくつかの仮定を省略しましたか?
— ラファエル

@Kavehの編集は、あなたが念頭に置いていたもの、すなわち「せいぜい」ですか?
— ラファエル

@Raphael、もう一度質問を読んで、すべての内部ノードに正確に2つの子があるヒープについてであると思います(この場合、元の質問は理にかなっており、主張は正しいか、または同様のものです)。
— カヴェー

1
@Kaveh Ahはい、あなたの混乱が見えます。ヒープのノードには最大で2つの子があります(したがって、バイナリツリータグ)
— varatis

1
そうですか。クレームが正確に定式化されているため、実際にさらなる仮定の必要はありません。このプロパティは、実際にはすべてのバイナリツリーに適用されます。
— ラファエル

回答:


7

質問は次のようになりました。

バイナリツリーを考えるとノード、それはせいぜい含まれていることを証明⌈ n個n葉。⌈n2⌉

米国ツリー定義を操作でき。以下のためにTそのようなAのツリー、聞かせてN Tのノードの数TとL T内の葉の数T。Tree=Empty∣Leaf∣Node(Tree、Tree)TnTTlTT

帰納法でこれを行うのは正しいことですが、ツリー構造に従う構造帰納法が必要になります。木の場合、これはしばしば木の高さ に対する完全な帰納法として行われます。h(T)

誘導アンカーには2つの部分があります。まず、場合、T = E m p t yであり、l T = n T = 0です。空のツリーに対しても明確に主張が成り立っています。以下のための時間(T )= 1、すなわち、T = Lは電子fは、我々は同様に有し、L T = 1 = ⌈ N Tをh(t)=0T=EmptylT=nT=0h(t)=1T=Leaf、その主張は、葉のために保持しています。lT=1=⌈nT2⌉

帰納法の仮定は、請求項は、全ての(バイナリ)木のために保持しているものととの時間(T )≤ K、K ≥ 1任意であるが固定されています。Th(T)≤kk≥1

帰納的ステップでは、h (T )= k + 1の任意の二分木を考えます。K ≥ 1、T = N O D E(L 、R )と、N T = N L + N R + 1。以下のようにL及びRは、バイナリツリーでもある(そうでなければTはないであろう)とH (L )、H (Th(T)=k+1k≥1T=Node(L、R)nT=nL+nR+1LRT、帰納法の仮定が適用されていh(L)、h(R)≤k

lL≤⌈nL2⌉ そして lR≤⌈nR2⌉。

すべての葉としてのいずれかであるLまたはR、我々はそれを持っていますTLR

lT=lL+lR≤⌈nL2⌉+⌈nR2⌉≤⌈nL+nR+12⌉(∗)=⌈nT2⌉

付い不等式かにわたって(四方)のケースを区別することによって確認することができ、n個のL、N R ∈ 2 N。誘導の力により、これで証明が終わります。(∗)nL、nR∈2N


演習として、同じ手法を使用して次のステートメントを証明できます。

  • 高さすべての完全な二分木には2 h − 1個のノードがあります。h2h−1
  • すべての完全なバイナリツリーには、奇数個のノードがあります。

2

私は質問に少し混乱しています。次数が最大でである木に興味がある場合(これはウィキペディアが望むことです)、単一のエッジにn = 2ノードとn = 2葉がありますが、n / 2 = 1であるという問題に遭遇します。とにかく、ここに簡単な議論がある何か近いものがあります。 3n=2n=2n/2=1

してみましょうこのような木もn個のノードとLの葉。以来Tが木で、あるのn - 1つのエッジ、およびダブルカウント彼らは、我々はそれを参照して 2 のn - 2 ≤ L + 3 (nは- L ) と述べている 2 L ≤ N + 2 と、これは二つにきついです-vertexの例。私はあなたが仮定したい場合は1度2のルート、そこにいることを推測のn ≥ 3、その後、あなたはこの引数を絞り込むことができますが、与えることを 2 LをTnLTn−1

2n−2≤L+3(n−L)
2L≤n+2
n≥3 、あなたが探しているもので、木がいっぱいになったとき、これはタイトです。
2L≤n+1

ここでは、静かにルート付きツリーを想定しています。ウィキペディアもそうしています。
— ラファエル

1
ウィキペディアの一種の曖昧な表現:「ツリーの外側には、「ルート」ノード(すべてのノードの祖先)への参照が存在する場合があります。)とにかく、この議論は異なっていて非常に簡単なので、書き留める価値があるようです。
— ルイ

読み進めると、すべてのエッジが方向付けられ、「子供」と「親」について話します。根のない木では意味がありません。その結果、葉は出次数0のノードになります
— ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.