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

Bài giảng Cấu trúc dữ liệu và giải thuật (Data structures and Algorithms): Chương 1 - Ngô Công Thắng - Trường Đại học Công nghiệp Thực phẩm Tp. Hồ Chí Minh

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 (567.89 KB, 10 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

CH

ƯƠ

NG 1: CÂY (TREE)



GV. Ngô Công Th

ng



B

môn Công ngh

ph

n m

m


Khoa Công ngh

thông tin


Website: dse.hua.edu.vn/ncthang



Email:



Ch

ươ

ng 1: Cây (Tree)



1.

Đị

nh ngh

ĩ

a và khái ni

m


2. Cây nh

phân



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


1.

Đị

nh ngh

ĩ

a và khái ni

m



1.1.

Đị

nh ngh

ĩ

a cây (tree)



l

Cây là m

t t

p h

p h

u h

n các nút, trong



đ

ó có m

t nút

đặ

c bi

t g

i là g

c (root).



Gi

a các nút có m

t quan h

phân c

p g

i


là quan h

cha con.



l

M

t cây khơng có nút nào g

i là cây r

ng


(null tree).




l

Các ví d

v

cây



1.3


Ví d

1: M

c l

c c

a m

t ch

ươ

ng



đượ

c bi

u di

n d

ng cây


Ch

ươ

ng 6



6.1


6.2



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


Ví d

2: Bi

u th

c s

h

c

đượ

c


bi

u di

n d

ng cây



x+y*(z-t)+u/v



1.5


Ví d

3: Các t

p bao nhau

đượ

c


bi

u di

n d

ng cây



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


1.2. Các khái ni

m



l

G

c (Root): G

c là nút

đặ

c bi

t khơng có


nút cha.




Ví d

3: A là g

c. A là cha c

a B, E, F.


B, E, F là con c

a A.



B, E, F c

ũ

ng là g

c c

a các cây con c

a A



l

C

p (Degree): S

con c

a m

t nút g

i là


c

p c

a nút

đ

ó.



Ví d

3: A có c

p là 3. E, F có c

p là 0.


B có c

p là 2.



1.7


1.2. Các khái ni

m (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Lá (Leaf): Nút có c

p b

ng khơng g

i là lá hay


nút t

n cùng.



Ví d

3: C,D,E,F là lá.



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


1.2. Các khái ni

m (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Chi

u cao c

a cây (Height) hay chi

u sâu c

a


cây (Depth): Là s

m

c l

n nh

t c

a nút có trên


cây.



Ví d

1: Cây có chi

u cao là 3



Ví d

2: Cây có chi

u cao là 5


Ví d

3: Cây có chi

u cao là 3



l

Đườ

ng

đ

i (Path): N

ế

u n

<sub>1</sub>

, n

<sub>2</sub>

, ..., n

<sub>k</sub>

là các dãy nút


mà n

<sub>i</sub>

là cha c

a n

<sub>i+1</sub>

(1

i<k) thì dãy

đ

ó g

i là



đườ

ng

đ

i t

n

<sub>1</sub>

đế

n n

<sub>k</sub>

.

Độ

dài c

a

đườ

ng

đ

i


b

ng s

nút tr

đ

i 1. .



Ví d

3:

Đườ

ng

đ

i t

A

đế

n C c

độ

dài là 3-1=2.



Đườ

ng

đ

i t

A

đế

n E c

độ

dài là 2-1=1.



1.9


1.2. Các khái ni

m (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

N

ế

u th

t

các cây con c

a m

t nút

đượ

c coi


tr

ng thì cây

đ

ang xét là cây có th

t

, ng

ượ

c l

i


là cây khơng có th

t

.



l

Th

ườ

ng thì th

t

các cây con c

a m

t nút



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


1.2. Các khái ni

m (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Đố

i v

i cây, ngoài quan h

cha con, ng

ườ

i


ta còn m

r

ng ph

ng theo quan h

trong


gia t

c.




l

R

ng (Forest): N

ế

u có m

t t

p h

u h

n


các cây phân bi

t thì ta g

i t

p

đ

ó là r

ng.



l

N

ế

u b

nút g

c c

a m

t cây thì ta s


m

t r

ng.



1.11


2. Cây nh

phân



2.1.

Đị

nh ngh

ĩ

a và tính ch

t


2.1.1.

Đị

nh ngh

ĩ

a cây nh

phân



</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


Ví d

1: Hai cây sau

đ

ây là khác nhau



1.13


Ví d

2: Cây nh

phân suy bi

ế

n có


d

ng m

t danh sách tuy

ế

n tính


Cây l

ch trái



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


Ví d

2: Cây nh

phân suy bi

ế

n có d

ng


m

t danh sách tuy

ế

n tính (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



Cây zíc z

c




1.15


2.1.1.

Đị

nh ngh

ĩ

a cây nh

phân (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


2.1.1.

Đị

nh ngh

ĩ

a cây nh

phân (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



l

Cây nh

phân

đầ

y

đủ

: Là cây nh

phân mà các


nút

m

i m

c c

a nút nhánh

đề

u có hai con.


Cây nh

phân

đầ

y

đủ

là tr

ườ

ng h

p

đặ

c bi

t c

a


cây nh

phân hồn ch

nh.



1.17


2.1.2. Tính ch

t



l

S

l

ượ

ng t

i

đ

a các nút

m

c i trên 1 cây


nh

phân là 2

(i-1)

<sub>(i</sub>

<sub>1).</sub>



</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Ngô Công Thắng Bài giảng Cấu trúc dữ liệu và giải thuật 2 - Chương 01


2.2. L

ư

u tr

cây nh

phân



2.2.1. L

ư

u tr

k

ế

ti

ế

p



l

V

i cây nh

phân

đầ

y

đủ

, ta

đ

ánh s

các


nút t

1 tr

đ

i, t

trái qua ph

i, h

ế

t m

c


này

đế

n m

c khác.




l

Dùng véc t

ơ

V l

ư

u tr

cây nh

phân, nút th


i c

a cây

đượ

c l

ư

u tr

ô nh

V[i]. Ví d

:



1.19


2.2.1. L

ư

u tr

k

ế

ti

ế

p (

<i>ti</i>

<i>ế</i>

<i>p</i>

)



</div>

<!--links-->

×