Tải bản đầy đủ (.pdf) (10 trang)

Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 19: Cây nhị phân

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (680.66 KB, 10 trang )

<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-->

×