<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Gi
ảng viên: TS. Ngo Huu Phuc
Tel: 0438 326 077
Mob: 098 5696 580
Email:
<b>C</b>
<b>ấu trúc dữ liệu và giải thuật </b>
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<b>N</b>
<b>ội dung:</b>
<b>19.1. Khái ni</b>
<b>ệm về cây nhị phân.</b>
<b>19.2. Bi</b>
<b>ểu diễn cây nhị phân.</b>
<b>19.4. Duy</b>
<b>ệt cây nhị phân.</b>
<b>Tham kh</b>
<b>ảo:</b>
1.
Deshpande Kakde: C and Data structures.chm, Chapter 21: Trees
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
<b>19.1. Khái ni</b>
<b>ệm về cây nhị phân (1/7)</b>
<b>19.1.1. Gi</b>
<b>ới thiệu và định nghĩa:</b>
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
<b>node</b>
đặ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 T
<sub>1</sub>
và T
<sub>2</sub>
, trong đó
chúng c
ũng là cây nhị phân.
Cây con T
<sub>1</sub>
được gọi là cây con bên trái.
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
<b>T</b>
<b>ừ định nghĩa cây nhị phân ta </b>
<b>nh</b>
<b>ận thấy rằng:</b>
S
ố node tối đa trên cây nhị
phân t
ại mức i là 2
i
−1
N
ếu k là độ sâu của cây thì số
ph
ần tử tối đa trên cây là:
2
k
− 1 = 2
k
−1
+ 2
k
−2
+ … + 2
0
<b>A</b>
<b>B</b>
<b>C</b>
<b>G</b>
<b>D</b>
<b>H</b>
<b>E</b>
<b>I</b>
<b>F</b>
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
<b>19.1. Khái ni</b>
<b>ệm về cây nhị phân (3/7)</b>
<b>Cây l</b>
<b>ệch:</b>
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.
<b>A</b>
<b>B</b>
<b>C</b>
<b>A</b>
<b>B</b>
<b>C</b>
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
<b>Cây nh</b>
<b>ị phân đầy đủ (Full binary tree):</b>
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à 2
k
<sub>-1.</sub>
<b>A</b>
<b>B</b>
<b>C</b>
<b>E</b>
<b>F</b>
<b>G</b>
Ví d
ụ về cây nhị
<b>D</b>
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
<b>19.1. Khái ni</b>
<b>ệm về cây nhị phân (5/7)</b>
<b>Cây nh</b>
<b>ị phân hoàn chỉnh (Complete binary tree):</b>
Cây nh
ị phân hồ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)
<b>A</b>
<b>B</b>
<b>C</b>
<b>E</b>
<b>F</b>
ụ về cây nhị phân hoàn chỉnh
<b>D</b>
<b>A</b>
<b>B</b>
<b>C</b>
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
<b>So sánh gi</b>
<b>ữa cây nhị phân đầy đủ và hoàn chỉnh:</b>
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 đủ.
<b>A</b>
<b>B</b>
<b>C</b>
<b>E</b>
<b>F</b>
Cây nh
ị phân hoàn chỉnh
<b>D</b>
<b>A</b>
<b>B</b>
<b>C</b>
<b>E</b>
<b>D</b>
<b>F</b>
<b>G</b>
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
<b>19.1. Khái ni</b>
<b>ệm về cây nhị phân (7/7)</b>
<b>Cây nh</b>
<b>ị phân cân bằng (Balanced binary tree):</b>
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.
<b>A</b>
<b>B</b>
<b>C</b>
<b>E</b>
<b>F</b>
ụ về cây nhị phân cân bằng
<b>D</b>
<b>A</b>
<b>B</b>
<b>C</b>
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
V
ới cây nhị phân hồ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.
<b>A</b>
<b>1</b>
<b>2</b>
<b>3</b>
<b>4</b>
<b>5</b>
<b>A</b>
<b>B</b>
<b>D</b>
<b>C</b>
<b>E</b>
</div>
<!--links-->