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