Das


14

Ich versuche zu beweisen, dass ein Binärbaum mit Knoten höchstens Blätter hat. Wie würde ich das mit Induktion machen?nn2

Für Leute, die der ursprünglichen Frage nach Haufen folgten, wurde sie hierher verschoben .


3
Beachten Sie zunächst, dass wir hier LaTeX verwenden können. Klicke auf "Bearbeiten", um zu sehen, wie ich es gemacht habe. Zweitens sehe ich keine Induktion. Sie werfen einige Zahlen herum, aber es gibt keine Beweisstruktur und überhaupt keine Beziehung zu Haufen. Kannst du es verbessern? Und schließlich ist die Behauptung falsch: Eine sortierte Liste erfüllt die Eigenschaft heap und hat nur ein Blatt. Haben Sie einige Annahmen ausgelassen?
Raphael

Ist @Kaveh's edit was du im Sinn hattest, also "höchstens"?
Raphael

@Raphael, wenn ich die Frage noch einmal lese, denke ich, es könnte sich um Haufen handeln, in denen jeder interne Knoten genau zwei Kinder hat (in diesem Fall ist die ursprüngliche Frage sinnvoll und die Behauptung richtig oder so ähnlich).
Kaveh

1
@Kaveh Ah ja, ich sehe deine Verwirrung. Die Knoten des Heaps haben höchstens zwei Kinder (daher das Binärbaum-Tag)
varatis

1
Aha. Bei genauer Formulierung des Anspruchs sind in der Tat keine weiteren Annahmen erforderlich. Die Eigenschaft gilt in der Tat für alle binären Bäume.
Raphael

Antworten:


7

Ich gehe jetzt davon aus, dass die Frage folgende ist:

Beweisen Sie bei einem Binärbaum mit Knoten, dass er höchstens n enthältnBlätter.n2

Lassen Sie uns mit dem Baum Definition arbeiten . Für T ein solcher Baum, lassen n T die Anzahl der Knoten in T und L T die Anzahl der Blätter in T .Tree=EmptyLeafNode(Tree,Tree)TnTTlTT

Sie tun dies zu Recht durch Induktion, benötigen jedoch eine strukturelle Induktion, die der Baumstruktur folgt. Bei Bäumen erfolgt dies häufig als vollständige Induktion über die Höhe der Bäume.h(T)

Der Induktionsanker besteht aus zwei Teilen. Erstens, für Wir haben T = E m p t Y mit L T = N T = 0 ; Die Behauptung gilt eindeutig für den leeren Baum. Für h ( t ) = 1 , dh T = L e a f , gilt in ähnlicher Weise l T = 1 = n Th(t)=0T=EmptylT=nT=0h(t)=1T=Leaf, so gilt der Anspruch für Blätter.lT=1=nT2

Die Induktionshypothese lautet: Angenommen, die Behauptung gilt für alle (binären) Bäume mit h ( T ) k , k 1 willkürlich, aber fest.Th(T)kk1

Betrachten Sie für den induktiven Schritt einen beliebigen Binärbaum mit h ( T ) = k + 1 . Wie k 1 , T = N o d e ( L , R ) und n T = n L + n R + 1 . Da L und R auch binäre Bäume sind (sonst wäre T nicht) und h ( L ) , h (Th(T)=k+1k1T=Node(L,R)nT=nL+nR+1LRT gilt und gilt die Induktionshypotheseh(L),h(R)k

lLnL2 and lRnR2.

Da alle Blätter von entweder in L oder R sind , haben wir dasTLR

lT=lL+lRnL2+nR2nL+nR+12()=nT2

Die mit markierte Ungleichung kann durch eine (vierfache) Unterscheidung überprüft werden, ob n L , n R2 N ist . Mit der Induktionskraft ist der Beweis abgeschlossen.()nL,nR2N


Als Übung können Sie dieselbe Technik verwenden, um die folgenden Aussagen zu beweisen:

  • Jeder perfekte Binärbaum der Höhe hat 2 h - 1 Knoten.h2h1
  • Jeder vollständige Binärbaum hat eine ungerade Anzahl von Knoten.

2

Die Frage verwirrt mich ein wenig. Wenn Sie sich für Bäume mit einem Grad von höchstens interessieren , wie Wikipedia es vorsieht, stoßen wir auf das Problem, dass eine einzelne Kante n = 2 Knoten und n = 2 Blätter hat, aber n / 2 = 1 . Sowieso ist hier etwas nahes, das ein einfaches Argument hat. 3n=2n=2n/2=1

Sei ein solcher Baum mit n Knoten und L Blättern. Da T ein Baum ist, gibt es n - 1 Kanten, und wenn wir sie doppelt zählen, sehen wir, dass 2 n - 2 L + 3 ( n - L ), was besagt, dass 2 L n + 2 und dies ist eng in den beiden -vertex Beispiel oben. Ich denke, wenn Sie annehmen wollen, dass es eine Wurzel von Grad zwei und n 3 gibt , können Sie dieses Argument verfeinern, um 2 L zu ergeben TnLTn1

2n2L+3(nL)
2Ln+2
n3 , was Sie suchen, und dies ist eng, wenn der Baum voll ist.
2Ln+1

Ich vermute, wir nehmen hier stillschweigend verwurzelte Bäume an. Wikipedia tut dies auch.
Raphael

1
Wikipedia ist sozusagen zweideutig und sagt: "Außerhalb des Baumes gibt es oft einen Verweis auf den" Wurzel "-Knoten (den Vorfahren aller Knoten), falls er existiert." Wie auch immer, dieses Argument scheint es wert, aufgeschrieben zu werden, da es anders und recht einfach ist.
Louis

Wenn Sie weiterlesen, sind alle Kanten gerichtet, sie sprechen von "Kindern" und "Eltern". Das macht bei nicht bewurzelten Bäumen keinen Sinn. Infolgedessen wäre ein Blatt ein Knoten mit einem Grad über 0
Raphael
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.