Cây nh ị phân là trường hợp đặc biệt của cây, trong đó không có node nào trên cây có b ậc lớn hơn 2... V ới cây nhị phân hoàn chỉnh có thể biểu diễn cây bằng mảng có n phần tử.[r]
Trang 1Giảng viên: TS Ngo Huu Phuc
Tel: 0438 326 077 Mob: 098 5696 580 Email: ngohuuphuc76@gmail.com
C ấu trúc dữ liệu và giải thuật
Trang 2N ội dung:
19.2 Bi ểu diễn cây nhị phân.
19.4 Duy ệt cây nhị phân.
1. Deshpande Kakde: C and Data structures.chm, Chapter 21: Trees
2. Elliz Horowitz – Fundamentals of Data Structures.chm, Chapter 5: Trees
3. Kyle Loudon: Mastering Algorithms with C.chm, Chapter 9 Trees
4. Bài giảng TS Nguyễn Nam Hồng
Trang 319.1 Khái ni ệm về cây nhị phân (1/7)
Cây nh ị phân là trường hợp đặc biệt của cây, trong đó không
có node nào trên cây có b ậc lớn hơn 2
Do đó cây nhị phân T có thể định nghĩa:
Có m ột node đặc biệt trên cây gọi là root của cây.
Các node khác trên cây được chia thành 2 tập T1 và T2, trong đó chúng c ũng là cây nhị phân
Cây con T1 được gọi là cây con bên trái.
Cây con T2 được gọi là cây con bên phải.
Trang 4T ừ định nghĩa cây nhị phân ta
nh ận thấy rằng:
S ố node tối đa trên cây nhị
phân t ại mức i là 2i −1
N ếu k là độ sâu của cây thì số
ph ần tử tối đa trên cây là:
2k − 1 = 2k −1 + 2k−2 + … + 20
A
G D
H
E
I F
Ví d ụ về cây nhị phân
Trang 519.1 Khái ni ệm về cây nhị phân (3/7)
Trong th ực tế, có dạng đặc biệt: cây lệch Cây lệch là cây chỉ có cây con trái ho ặc phải.
A B
C
A
B
C
Cây l ệch trái Cây l ệch phải
Trang 6Cây nh ị phân đầy đủ (Full binary tree):
Cây nhị phân đầy đủ có độ cao là k thì các node ở mức thấp hơn có đủ con trái
và phải
Như vậy, với cây nhị phân đầy đủ có độ cao là k thì số node trên cây là 2k-1
A B
C
E
Ví d ụ về cây nhị phân đầy đủ có độ
D
Ví d ụ: Với k=3, số node trên cây
nh ị phân đầy đủ là 23-1=7
Trang 719.1 Khái ni ệm về cây nhị phân (5/7)
Cây nhị phân hoàn chỉnh có độ cao là k, với độ cao k-1 là đầy đủ
Tại độ cao là k, các node được đưa vào cây từ trái sang phải
Nh ận xét:
Các node tại mức k-2 về trước có đủ 2 con
Các node ở mức k-1 có thể có 2 con hoặc 1 con Nếu có 1 con trì có con trái (các node cùng mức trước đó đã có 2 con)
A B
C
E F
D
A B
C
E D
Trang 8So sánh gi ữa cây nhị phân đầy đủ và hoàn chỉnh:
Cây nhị phân đầy đủ là trường hợp riêng của cây nhị phân hoàn chỉnh
Cây nhị phân hoàn chỉnh chưa chắc đã là cây nhị phân đầy đủ
A B
C
E F
Cây nhị phân hoàn chỉnh
D
A B
C
E
Cây nhị phân đầy đủ
Trang 919.1 Khái ni ệm về cây nhị phân (7/7)
Cây nhị phân cân bằng là cây mà tại mỗi node độ cao cây con trái và phải không lệch nhau quá 1
A B
C
E
F D
A B
C
E D
Trang 10 V ới cây nhị phân hoàn chỉnh có thể biểu diễn cây bằng mảng có n phần tử
N ếu cây nhị phân hoàn chỉnh được biểu diễn dưới dạng mảng, giá trị của
ph ần tử thứ i sẽ được chứa trong mảng tại vị trí thứ i (1<=i<=n)
Khi đó, phần tử “cha” của i sẽ là i/2 và 2 con của node i sẽ là 2i và 2i+1.
A
1 2 3 4 5
A B
D
C E
B C D E
ểu diễn cây nhị phân hoàn chỉnh bằng mảng