พิสูจน์ต้นไม้ไบนารีได้มากที่สุด


14

ฉันพยายามพิสูจน์ว่าต้นไม้ไบนารีที่มีn nodes มีไม่เกินn2ใบ ฉันจะทำสิ่งนี้ด้วยการเหนี่ยวนำได้อย่างไร

สำหรับคนที่ได้รับการต่อไปนี้ในคำถามเดิมเกี่ยวกับกองจะได้รับการย้ายที่นี่


3
ก่อนอื่นให้สังเกตว่าเราสามารถใช้ LaTeX ได้ที่นี่ คลิก "แก้ไข" เพื่อดูว่าฉันทำได้อย่างไร ประการที่สองฉันไม่เห็นอุปนัย คุณกำลังขว้างตัวเลขจำนวนหนึ่งรอบ ๆ นั้น แต่ไม่มีโครงสร้างการพิสูจน์และไม่เกี่ยวข้องกับกองทั้งหมด คุณสามารถปรับปรุงได้หรือไม่ และท้ายสุดการอ้างสิทธิ์ผิด: รายการที่เรียงตามคุณสมบัติของฮีปและมีเพียงลีฟเดียว คุณทิ้งสมมติฐานไว้บ้างไหม?
Raphael

@ Kaveh แก้ไขสิ่งที่คุณมีในใจหรือไม่นั่นคือ "มากที่สุด"?
Raphael

@ ราฟาเอล, อ่านคำถามอีกครั้ง, ฉันคิดว่ามันอาจเป็นเรื่องเกี่ยวกับกองที่โหนดภายในทั้งหมดมีลูกสองคน (ในกรณีที่คำถามดั้งเดิมมีเหตุผลและการอ้างสิทธิ์ถูกต้องหรือสิ่งที่คล้ายกัน)
Kaveh

1
@ Kaveh Ah ใช่ฉันเห็นความสับสนของคุณ โหนดของฮีปมีลูกได้ไม่เกินสองคน (ดังนั้นจึงมีแท็กไบนารีทรี)
varatis

1
ฉันเห็น. ด้วยการอ้างสิทธิ์ที่กำหนดขึ้นอย่างแม่นยำจึงไม่จำเป็นต้องมีข้อสมมติฐานเพิ่มเติม สถานที่ให้บริการถือในความเป็นจริงสำหรับต้นไม้ไบนารีทั้งหมด
Raphael

คำตอบ:


7

ฉันคิดว่าตอนนี้คำถามมีดังต่อไปนี้:

ให้ต้นไม้ไบนารีด้วย nodes พิสูจน์ว่ามันมีมากที่สุดnnn2ใบ

ขอให้เราทำงานที่มีความหมายต้นไม้ ) สำหรับTต้นไม้ดังกล่าวให้n TจำนวนโหนดในTและL TจำนวนใบในTTree=EmptyLeafNode(Tree,Tree)TnTTlTT T

คุณถูกต้องในการทำเช่นนี้โดยการเหนี่ยวนำ แต่คุณจะต้องมีการเหนี่ยวนำโครงสร้างที่เป็นไปตามโครงสร้างต้นไม้ สำหรับต้นไม้สิ่งนี้มักทำในลักษณะการเหนี่ยวนำโดยสมบูรณ์เหนือความสูง h(T)ของต้นไม้

สมอเรือเหนี่ยวนำมีสองส่วน ก่อนอื่นสำหรับเรามีT = E m p t yกับl T = n T = 0 ; การเรียกร้องถือต้นไม้ไว้อย่างชัดเจน สำหรับเอช( T ) = 1คือT = L e เราในทำนองเดียวกันมีL T = 1 = n Th(t)=0T=EmptylT=nT=0h(t)=1T=Leafดังนั้นการอ้างสิทธิ์ถือสำหรับใบไม้lT=1=nT2

สมมติฐานการปฐมนิเทศคือ: สมมติว่าการอ้างสิทธิ์ถือสำหรับต้นไม้ (ไบนารี) ทั้งหมดกับh ( T ) k , k 1Th(T)kk1โดยพลการ แต่คงที่

สำหรับขั้นตอนการอุปนัยพิจารณาโดยพลไบนารีต้นไม้กับH ( T ) = k + 1 ในฐานะที่เป็นk 1 , T = N o อี ( L , R )และn T = n L + n R + 1 ในฐานะที่เป็นLและRก็เป็นต้นไม้ไบนารี (มิฉะนั้นTจะไม่เป็น) และh ( L ) , h (Th(T)=k+1k1T=Node(L,R)nT=nL+nR+1LRTh(L),h(R)k, the induction hypothesis applies and have

lLnL2 and lRnR2.

As all leaves of T are either in L or R, we have that

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

ความไม่เสมอภาคที่มีเครื่องหมายสามารถตรวจสอบได้โดย (วิธีที่สี่) กรณีที่แตกต่างมากกว่าว่าn L , n R2 N โดยพลังของการเหนี่ยวนำนี้สรุปหลักฐาน()nL,nR2N


ในแบบฝึกหัดคุณสามารถใช้เทคนิคเดียวกันเพื่อพิสูจน์ข้อความต่อไปนี้:

  • ต้นไม้ไบนารีที่สมบูรณ์แบบทุกความสูงมี2 h - 1โหนดh2h1
  • ต้นไม้ไบนารีเต็มทุกต้นมีจำนวนโหนดคี่

2

I am a little confused by the question. If you are interested in trees with degree at most 3, which is what Wikipedia says you want, then we run into the problem that a single edge has n=2 nodes and n=2 leaves, but n/2=1. Anyway, here is something close that has an easy argument.

Let T be such a tree with n nodes and L leaves. Since T is a tree, there are n1 edges, and double counting them, we see that

2n2L+3(nL)
which says that
2Ln+2
and this is tight in the two-vertex example above. I guess that if you want to assume that there one root of degree two and n3, then you can refine this argument to give
2Ln+1
which is what you are looking for, and this is tight when the tree is full.

I guess we silently assume rooted trees here; Wikipedia does so, too.
Raphael

1
Wikipedia sort of equivocates, saying: "Outside the tree, there is often a reference to the "root" node (the ancestor of all nodes), if it exists." Anyway, this argument seems worth writing down, since it is different and quite easy.
Louis

If you read on, all edges are directed, they talk of "children" and "parents". That does not make sense in unrooted trees. In consequence, a leaf would be a node with outdegree 0.
Raphael
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.