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

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 10 - Trường ĐH Văn Lang

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 (1.14 MB, 48 trang )

KHOA CÔNG NGHỆ THÔNG TIN

CẤU TRÚC DỮ LIỆU & GIẢI
(Data Structure and Algorithm)
THUẬT
CHƯƠNG 10: CẤU TRÚC CÂY (TREE)
GVGD: Th.S Trần Cơng Thanh

HỌC KỲ I – NĂM HỌC 2020-2021
KHĨA 25T-IT


01. TỔNG
02.

NỘI
DUNG

QUAN
THAO TÁC TRÊN CT CÂY

03. CÁC LOẠI
04.

CÂY
CÂY NHỊ PHÂN

05. DUYỆT
CÂY



KHÁI NIỆM CƠ BẢN
▪ Cây là một cấu trúc phân tầng của các phần tử gọi là nút (node)
• Mỗi node chứa một phần tử đơn.
• Mỗi phần tử có thể có 1 hoặc nhiều nhánh kết nối với các nút khác, được gọi là
nút con.

▪ Mọi cây có 1 nút gốc – root duy nhất.

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Mọi nút trừ nút gốc đều là con của một nút khác – nút cha.

KHOA CÔNG NGHỆ THÔNG TIN

3

3


CẤU TRÚC CÂY TRONG THỰC TẾ
▪ Thông thường các mô hình tổ chức sẽ có cấu trúc cây:
• Một cây tổ chức là một cây khơng có thứ tự có cấu trúc phân tầng, như tổ chức
của phòng ban trong thương mại.

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com


Engineering

Medicine

University

Science

Chemistry Physics

KHOA CÔNG NGHỆ THÔNG TIN

Education

Maths

Law

Arts

Languages History

4

4


▪ Sơ đồ phân loại sinh học cũng là một loại cây phổ biến.
▪ Cây này cũng khơng có thứ tự nhưng có tổ chức phân lớp.


感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

animals

worms

ants

insects

beetles

arachnids vertebrates

flies

stars

fish reptites birds

sponges

mammals

snakes lizards crocodiles

KHOA CÔNG NGHỆ THÔNG TIN


5


▪ Một bản đồ di chuyển thường được dùng trong ứng dụng định vị
robot dùng lưu trữ các hướng theo một giải thuật để khám phá tồn
bộ khơng gian xung quanh.
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CÔNG NGHỆ THÔNG TIN

6


▪ Tổ chức file và các thư mục
▪ Chúng tả có thể mơ hình hóa tổ chức các file bằng cách dùng cây khơng sắp xếp theo
mơ hình nút lá, và các thư mục như các nút cha.

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

root

doc

bin

cp


KHOA CÔNG NGHỆ THÔNG TIN

grep

lib

sort

etc

mail

motd

tmp

users

passwd

7


Thao tác trên cấu trúc cây
Nó phải có thể
▪ truy cập vào nút gốc của cây
▪ truy cập tất cả các tổ tiên của một nút trong cây
▪ truy cập tất cả con cháu của một nút trong cây
▪ thêm một nút mới vào cây,

▪ xóa một nút nhất định khỏi cây
▪ Duyệt cây.
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CÔNG NGHỆ THÔNG TIN

8


Một số định nghĩa
This node is the parent
This is an
edge
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CÔNG NGHỆ THÔNG TIN

9


Một số định nghĩa

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com


KHOA CÔNG NGHỆ THÔNG TIN

10


Một số định nghĩa
▪ Cây có thể được sắp xếp hoặc khơng được sắp xếp.
▪ Cây khơng có thứ tự, cây là cây ở hình dạng. Theo
nghĩa cấu trúc, nó trông giống như một cái cây.
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

▪ Đối với bất kỳ nút nhất định nào, khơng có thứ tự nào được
áp đặt cho các nút con của nút đó

KHOA CƠNG NGHỆ THÔNG TIN

11


Một số định nghĩa
▪ Một cây có thứ tự áp đặt thứ tự trên các nút
▪ Có nhiều chiến lược sắp xếp thứ tự, nhưng theo nghĩa
đơn giản nhất, thứ tự có thể được áp đặt bằng cách
gán các số khác nhau cho các nút con của nút
▪ Lưu ý rằng thứ tự và duyệt cây khơng giống nhau
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com


KHOA CƠNG NGHỆ THÔNG TIN

12


Một số định nghĩa
▪ Cây có thể cân bằng hoặc không cân bằng
▪ Cây cân bằng tốt là cây không có nút nào xa gốc hơn
bất kỳ nút nào khác
▪ Các giải thuật cân bằng khác nhau cho phép các định
nghĩa khác nhau về "xa hơn nhiều" và đi kèm với các
chi phí khác nhau để giữ cho cây cân bằng
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CÔNG NGHỆ THÔNG TIN

13


Một số định nghĩa

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CÔNG NGHỆ THÔNG TIN


14


Một số định nghĩa
▪ Brute force tìm kiếm thơng qua một cấu trúc tuyến tính yêu cầu
thời gian O (N)
▪ Nếu cây được cân bằng tốt, việc tìm kiếm, chèn và xóa có thể
được thực hiện trong thời gian O (ln (N))
▪ Một cây không cân bằng cao cung cấp ít hoặc khơng có giá trị
vì trong trường hợp xấu nhất, hầu hết cây sẽ phải được duyệt
qua để thực hiện việc chèn, xóa hoặc tra cứu dẫn đến thời gian
là O (N) cho các thao tác này.
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CÔNG NGHỆ THÔNG TIN

15


Một số định nghĩa
▪ Cây NULL – là cây có chỉ có nút gốc hay khơng có
nút nào.

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CƠNG NGHỆ THÔNG TIN


16


Mô tả cây nhị phân
▪ Mô tả dữ liệu
▪ Mô tả tác vụ
▪ Ba phép duyệt cây nhị phân
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CÔNG NGHỆ THÔNG TIN

17

17


BT – Mô tả dữ liệu
▪ Cấu trúc cây đơn giản nhất, mỗi nút có tối đa 2 nút con
▪ Tại mỗi nút gồm các 3 thành phần
• Phần data: chứa giá trị, thơng tin…
• Liên kết đến nút con trái (nếu có)
• Liên kết đến nút con phải (nếu có)

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com


▪ Cây nhị phân có thể rỗng (ko có nút nào)
▪ Cây NP khác rỗng có 1 nút gốc
• Có duy nhất 1 đường đi từ gốc đến 1 nút
• Nút khơng có nút con bên trái và con bên phải là nút lá

KHOA CÔNG NGHỆ THÔNG TIN

18

18

18


BT – Mơ tả dữ liệu
Kích thước = 9 (số nút)
Mức 0

A

Cây con phải

Cây con trái
Mức 1

Mức 2

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com


B

D

Mức 3

KHOA CÔNG NGHỆ THÔNG TIN

C

E

H

F

I

G

Độ sâu/chiều cao = 3

19

19


20


BT – Mơ tả
tác vụ
1. Khởi tạo cây

6. Xóa trái

2. Kiểm tra rỗng

7. Xóa phải
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

3. Tạo nút

8. Duyệt cây

4. Thêm trái

9. Tìm kiếm

5. Thêm phải

KHOA CƠNG NGHỆ THƠNG TIN

10. Xóa cây

20



BT- Duyệt cây
▪ Duyệt cây:
• Do cây là cấu trúc khơng tuyến tính
• 3 cách duyệt cây NP




Duyệt theo thứ tự trước PreOrder: NLR
Duyệt theo thứ tự giữa InOrder: LNR
Duyệt theo thứ tự sau PostOrder: LRN

KHOA CÔNG NGHỆ THÔNG TIN

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

21

21

21


7.3.3. BT- Duyệt cây
▪ Ví dụ:
A

B


C

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

D

E

I

K

G

H

L

PreOrder : A, B, D, I, E, K, C, G, H, L
InOrder : D, I, B, K, E, A, G, C, L, H
PostOrder : I, D, K, E, B, G, L, H, C, A22

KHOA CÔNG NGHỆ THÔNG TIN

22

22



Hiện thực cây nhị phân
▪ Cài đặt cây NP dùng liên kết

Chứa thông tin của nút

class node
{

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

DataType info;
node left;
node right;
Trỏ đến nút con trái

}

Trỏ đến nút con phải
node
KHOA CÔNG NGHỆ THÔNG TIN

pTree;

Trỏ nút gốc của cây NP
23


23

23


Hiện thực cây nhị phân
pTree
Con trỏ pTree trỏ
đến nút gốc của cây

8

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

5

1

3

9
KHOA CÔNG NGHỆ THÔNG TIN

10

4

20


7
24

24

24


Hiện thực cây nhị phân
▪ Các thao tác:
• CreateNode, FreeNode, Init, IsEmpty
• InsertLeft, InsertRight
• DeleteLeft, DeleteRight
• PreOrder, InOrder, PostOrder
• Search
• ClearTree

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

Phần minh hoạ
dùng
DataType là
kiểu int

KHOA CÔNG NGHỆ THÔNG TIN

25


25

25


×