Minh một cây nhị phân có ít nhất


14

Tôi đang cố chứng minh rằng một cây nhị phânn nút có nhiều nhất là n2lá. Làm thế nào tôi sẽ đi về làm điều này với cảm ứng?

Đối với những người đã theo dõi trong câu hỏi ban đầu về đống, nó đã được chuyển đến đây .


3
Đầu tiên, lưu ý rằng chúng ta có thể sử dụng LaTeX tại đây. Nhấp vào "chỉnh sửa" để xem tôi đã làm như thế nào. Thứ hai, tôi không thấy một cảm ứng. Bạn đang ném một số con số xung quanh đó nhưng không có cấu trúc bằng chứng và không liên quan đến đống. Bạn có thể cải thiện nó? Và cuối cùng, yêu cầu là sai: một danh sách được sắp xếp đáp ứng thuộc tính heap và chỉ có một lá. Bạn đã bỏ qua một số giả định?
Raphael

Là @ Kaveh đang chỉnh sửa những gì bạn có trong đầu, tức là "nhiều nhất"?
Raphael

@Raphael, đọc lại câu hỏi, tôi nghĩ đó có thể là về đống trong đó mỗi nút nội bộ có chính xác hai con (trong trường hợp câu hỏi ban đầu có ý nghĩa và yêu cầu là chính xác, hoặc một cái gì đó tương tự).
Kaveh

1
@Kaveh À đúng rồi, tôi thấy nhầm lẫn của bạn. Các nút của heap có nhiều nhất hai con (do đó là thẻ cây nhị phân)
varatis

1
Tôi hiểu rồi. Với tuyên bố được xây dựng chính xác, thực sự không cần phải có thêm các giả định. Các tài sản giữ trong thực tế cho tất cả các cây nhị phân.
Raphael

Câu trả lời:


7

Bây giờ tôi giả sử rằng câu hỏi là như sau:

Cho một cây nhị phân có nút, chứng minh rằng nó chứa tối đa nnlá.n2

Hãy để chúng tôi làm việc với định nghĩa cây . Đối với T một cái cây như vậy, chúng ta hãy n T số nút trong Tl T số lượng lá trong T .Tree=EmptyLeafNode(Tree,Tree)TnTTlTT

Bạn đúng để làm điều này bằng cảm ứng, nhưng bạn sẽ cần cảm ứng cấu trúc theo cấu trúc cây. Đối với cây, điều này thường được thực hiện dưới dạng cảm ứng hoàn toàn trên chiều cao của cây.h(T)

Neo cảm ứng có hai phần. Đầu tiên, với ta có T = E m p t y với l T = n T = 0 ; Yêu cầu rõ ràng giữ cho cây trống. Với h ( t ) = 1 , tức là T = L e a f , chúng ta tương tự có l T = 1 = n Th(t)=0T=EmptylT=nT=0h(t)=1T=Leaf, vì vậy yêu cầu bồi thường giữ cho lá.lT=1=nT2

Giả thuyết cảm ứng là: Giả định rằng yêu cầu bồi thường giữ cho tất cả (nhị phân) cây với h ( T ) k , k 1 tùy ý nhưng cố định.Th(T)kk1

Đối với bước quy nạp, hãy xem xét một cây nhị phân tùy ý với h ( T ) = k + 1 . Như k 1 , T = N o d e ( L , R )n T = n L + n R + 1 . Vì LR cũng là cây nhị phân (nếu không thì T sẽ không) và h ( L ) , h (Th(T)=k+1k1T=Node(L,R)nT=nL+nR+1LRT , giả thuyết cảm ứng được áp dụng và cóh(L),h(R)k

lLnL2 and lRnR2.

Vì tất cả các lá của đều ở L hoặc R , chúng ta có điều đóTLR

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

Sự bất bình đẳng được đánh dấu bằng có thể được kiểm tra bằng (bốn chiều) trường hợp phân biệt về việc liệu n L , n R2 N . Bằng sức mạnh của cảm ứng, điều này kết luận bằng chứng.()nL,nR2N


Như một bài tập, bạn có thể sử dụng kỹ thuật tương tự để chứng minh các tuyên bố sau:

  • Mỗi cây nhị phân hoàn hảo có chiều cao 2 h - 1 nút.h2h1
  • Mỗi cây nhị phân đầy đủ có một số nút lẻ.

2

Tôi hơi bối rối trước câu hỏi. Nếu bạn quan tâm đến cây có độ nhiều nhất là , đó là những gì Wikipedia nói bạn muốn, thì chúng ta gặp phải vấn đề là một cạnh có n = 2 nút và n = 2 lá, nhưng n / 2 = 1 . Dù sao, đây là một cái gì đó gần gũi có một cuộc tranh luận dễ dàng. 3n=2n=2n/2=1

Đặt là một cây như vậy với n nút và lá L. Kể từ khi T là một cây, có n - 1 cạnh, và đếm đôi họ, chúng ta thấy rằng 2 n - 2 L + 3 ( n - L ) mà nói rằng 2 L n + 2 và đây là chặt chẽ trong hai ví dụ -vertex ở trên. Tôi đoán rằng nếu bạn muốn giả sử rằng có một gốc bậc hai và n 3 , thì bạn có thể tinh chỉnh đối số này để đưa ra 2 LTnLTn1

2n2L+3(nL)
2Ln+2
n3 mà là những gì bạn đang tìm kiếm, và đây là chặt chẽ khi cây đã đầy.
2Ln+1

Tôi đoán chúng tôi âm thầm giả định cây gốc ở đây; Wikipedia cũng làm như vậy.
Raphael

1
Wikipedia sắp xếp tương đương, nói rằng: "Bên ngoài cây, thường có một tham chiếu đến nút" gốc "(tổ tiên của tất cả các nút), nếu nó tồn tại." Dù sao, lập luận này có vẻ đáng để viết ra, vì nó khác biệt và khá dễ dàng.
Louis

Nếu bạn đọc tiếp, tất cả các cạnh đều được định hướng, chúng nói về "trẻ em" và "cha mẹ". Điều đó không có ý nghĩa trong các cây không được bố trí. Do đó, một chiếc lá sẽ là một nút có giá trị vượt quá 0.
Raphael
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.