Cây nhị phân có 1 hoặc 2 con tại các nút không lá và 0 nút tại các nút lá. Để có nút trong một cây và chúng ta phải sắp xếp chúng theo cách mà chúng vẫn tạo thành cây nhị phân hợp lệ.n
Không cần chứng minh, tôi nói rằng để tối đa hóa chiều cao, các nút đã cho phải được sắp xếp tuyến tính, tức là mỗi nút không có lá chỉ nên có một con:
O 1
|
O 2
|
O 3
|
O 4
|
O 5
|
O 6
|
O 7
|
O 8
Ở đây, công thức tính toán quan hệ chiều cao theo số lượng nút là đơn giản. Nếu là chiều cao của cây thì .h = n - 1hh = n - 1
Bây giờ, nếu chúng ta cố gắng xây dựng một cây nhị phân gồm nút có chiều cao tối thiểu (luôn có thể rút gọn thành cây nhị phân hoàn chỉnh), chúng ta phải đóng gói càng nhiều nút càng tốt ở cấp trên, trước khi chuyển sang cấp độ tiếp theo. Vì vậy, cây có dạng cây sau:n
O
|1
|
O------+-----O
|2 |3
| |
O---+---O O---+----O
|4 |5 6 7
| |
O---+--O O
8 9 10
Chúng ta hãy bắt đầu với một trường hợp cụ thể, .n = 2m- 1
Chúng tôi biết rằng,
20+ 21+ 22+ . . . + 2m - 1= 2m- 1
Ngoài ra, thật dễ dàng để chứng minh rằng, một cấp độ có thể có tối đa nút trong đó.2 tôiTôi2Tôi
Sử dụng kết quả này trong tổng số trên, chúng tôi thấy rằng với mỗi cấp , từ đến , tồn tại một thuật ngữ tương ứng trong việc mở rộng . Điều này ngụ ý rằng một cây nhị phân hoàn chỉnh nút được lấp đầy hoàn toàn và có chiều cao, , trong đó chiều cao của cây nhị phân hoàn chỉnh với nút.0 m 2 i - 1 2 m - 1 2 m - 1 h ( 2 m - 1 ) = m - 1 h ( n ) = nTôi0m2tôi - 12m- 12m- 1h ( 2m- 1 ) = m - 1h ( n ) =n
Sử dụng kết quả này, , vì cây có nút được lấp đầy hoàn toàn và do đó, một cây có nút phải chứa thêm nút phụ ở cấp độ tiếp theo , tăng chiều cao thêm 1 từ lên .2 m - 1 ( 2 m - 1 ) + 1 = 2 m m m - 1 mh ( 2m) = m2m- 1( 2m- 1 ) + 1 = 2mmm - 1m
Cho đến bây giờ chúng tôi đã chứng minh,
cũng như,h ( 2 m + 1 ) = m + 1 h ( 2 m + 1 - 1 ) = m
h ( 2m) = m ,
h ( 2m + 1) = m + 1
h ( 2m + 1- 1 ) = m
Do đó, m ≤ h ( n ) < m + 1∀ n ∈ Z , 2m< N < 2m + 1
m ≤ h ( n ) < m + 1
Nhưng, lấy nhật ký (cơ sở 2) ở cả hai bên,
m = ⌊ log 2 ( n ) ⌋
m ≤ đăng nhập2( n ) < m + 1
m = ⌊ log2( N ) ⌋
Do đó,h ( n ) = m = ⌊ log 2 ( n ) ⌋∀ n , n ∈ [ 2m, 2m + 1)
h ( n )= m = ⌊ log2( n) ⌋
Và chúng ta có thể khái quát kết quả này bằng cách sử dụng quy nạp.∀ n ∈ Z
PS: Cuốn sách nêu chiều cao của cây nhị phân hoàn chỉnh là không hợp lệ cho tất cả vì sẽ cung cấp các giá trị không tách rời cho hầu hết các số nguyên (nghĩa là cho tất cả nhưng hoàn hảo cây nhị phân), nhưng chiều cao của cây hoàn toàn không thể thiếu.n log 2 ( n ) nđăng nhập2( n + 1 ) - 1nđăng nhập2( n )n