Chương 6: Cấu trúc cây - Cô Võ Thị Hường
Gửi bởi: Võ Thị Hường 10 tháng 9 2020 lúc 9:57:31 | Được cập nhật: 22 tháng 4 lúc 5:31:49 Kiểu file: PDF | Lượt xem: 231 | Lượt Download: 0 | File size: 1.033343 Mb
Nội dung tài liệu
Tải xuống
Link tài liệu:
Các tài liệu liên quan
Có thể bạn quan tâm
Thông tin tài liệu
Chương 6
CẤU TRÚC CÂY
NỘI DUNG
Các khái niệm cơ bản
Cây nhị phân
Cây tổng quát
2/51
4.1 CÁC KHÁI NIỆM CƠ BẢN
Định nghĩa cây
Cấp của cây
Mức của cây
Đường đi và độ dài đường đi trong cây
Độ cao, độ sâu của nút trong cây
Thứ tự các nút trong cây
Phép duyệt cây
Cây gán nhãn và cây biểu thức
3/51
4.1.1 Định nghĩa cây
Cây là 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 của cây(root). Các nút có mối quan hệ
phân cấp gọi là quan hệ ‘’cha-con’’
Định nghĩa đệ qui về cây
Một nút là một cây gốc của cây chính là nút đó.
Giả sử T1, T2, …, Tn (n 1) là các cây có gốc tương
ứng r1, r2,…, rn. Khi đó cây T với gốc r được hình
thành bằng cách cho r trở thành nút cha của các nút
r1, r2,…, rn
4/51
4.1.1 Định nghĩa cây
T
T1
r1
T2
r
r2
…
rn
Tn
5/51
4.1.2 Cấp của cây
Cấp của nút trong cây là số con của nút
Cấp của cây: Là cấp cao nhất của nút có trong cây.
Cây có cấp n thì gọi là cây n - phân
6/51
4.1.3 Mức của cây
Gốc của cây có mức là 1
Cha có mức là i thì con có mức là i+1
Mức của cây là mức cao nhất của nút có trong cây
7/51
4.1.4 Đường đi và độ dài đường đi
Dãy các nút n1, n2, ..., nk được gọi là một đường đi
trong cây T nếu ni là cha của ni+1 (1 i < k) có độ dài là
k-1
Nếu có một đường đi từ A đến B trong cây T thì A được
gọi là tiền thân của B, B được gọi là hậu thế của A
Trong một cây, gốc là nút không có tiền thân, lá là nút
không có hậu thế
8/51
4.1.5 Độ cao và độ sâu của nút
Độ cao của một nút trong cây là số nút trong đường đi
dài nhất từ nút đó tới lá
Độ cao của cây là độ cao của nút gốc
Độ sâu của một nút trong cây là số nút trong đường đi
từ gốc tới nút đó
9/51
4.1.6 Thứ tự các nút trong cây
Trong cây nếu nút n có các con là n1, n2,..., nk thì
ni (1<=i<=k) là các nút anh em
n1 là con bên trái cùng hay con trưởng
nk là con bên phải cùng hay con út
ni (1<=i
T2
Nếu là các cây không có thứ tự thì T1=T2
B
11/51
4.1.7 Phép duyệt cây
Là phép thăm các nút trong cây một cách hệ thống sao
cho tất cả các nút đều được thăm và được thăm đúng
một lần
Có 3 cách duyệt cây cơ bản :
Duyệt cây theo thứ tự trước (preorder)
Duyệt cây theo thứ tự giữa (inorder)
Duyệt cây theo thứ tự sau (postorder )
12/51
4.1.7 Phép duyệt cây
Duyệt cây theo thứ tự trước (preorder)
Nếu cây khác rỗng
Thăm gốc
Duyệt cây con trái theo thứ tự trước
Duyệt cây con phải theo thứ tự trước
13/51
4.1.7 Phép duyệt cây
A
B
E
F
C
G
H
D
I
K
14/51
4.1.7 Phép duyệt cây
Duyệt cây theo thứ tự giữa (inorder)
Nếu cây khác rỗng
Duyệt cây con trái theo thứ tự giữa
Thăm gốc
Duyệt cây con phải theo thứ tự giữa
15/51
4.1.7 Phép duyệt cây
A
B
E
F
C
G
H
D
I
K
Giữa: EBFGAHCIDK
Sau: EFGBHCIKDA
Trước: ABEFGCHDIK
16/51
4.1.7 Phép duyệt cây
Duyệt cây theo thứ tự sau (postorder)
Nếu cây khác rỗng
Duyệt cây con trái theo thứ tự sau
Duyệt cây con phải theo thứ tự sau
Thăm gốc
17/51
4.1.7 Phép duyệt cây
A
B
E
F
C
G
H
D
I
K
Thứ tự trước : ABEFGCHDIK
Thứ tự giữa :
EBFGAHCIDK
Thứ tự sau :
EFGBHCIKDA
18/51
4.1.8 Cây gán nhãn và cây biểu thức
Cây gán nhãn : Mỗi nút trong cây được gán với một
nhãn
Cây biểu thức : Mỗi nút trong cây được gán với một
thành phần của biểu thức theo cách
Mỗi nút lá được gán với một toán hạng
Mỗi nút trong được gán với một toán tử
19/51
4.1.8 Cây gán nhãn và cây biểu thức
Ví dụ cây biểu thức P = a*(b - c) + d/e
+
/
*
a
-
b
d
e
c
Duyệt theo thứ tự trước :
Duyệt theo thứ sau :
+*a-bc/de
abc-*de/+
20/51
4.2 CÂY NHỊ PHÂN
Khái niệm, đặc điểm, tính chất
Biểu diễn cây nhị phân
Cây nhị phân tìm kiếm
21/51
4.2.1 Khái niệm, đặc điểm, tính chất
Là dạng đặc biệt của cây. Mỗi nút trong có tối đa 2 con,
phân biệt con bên trái và con bên phải của nút
Là cây có thứ tự
Các dạng cây nhị phân đặc biệt
Cây nhị phân suy biến
22/51
4.2.1 Khái niệm, đặc điểm, tính chất
Các dạng cây nhị phân đặc biệt
Cây nhị phân hoàn chỉnh : Các mức đều đạt tối đa số
nút trừ mức cao nhất trong cây
23/51
4.2.1 Khái niệm, đặc điểm, tính chất
Các dạng cây nhị phân đặc biệt
Cây nhị phân hoàn chỉnh đầy đủ : Các mức đều đạt tối
đa số nút
24/51
4.2.1 Khái niệm, đặc điểm, tính chất
Trong cây nhị phân
Số lượng nút tối đa ở mức i là 2i-1
Số lượng nút tối đa ở cây nhị phân mức i 2i – 1
Trong các cây nhị phân có cùng số nút thì cây nhị
phân suy biến có chiều cao lớn nhất, cây nhị phân
hoàn chỉnh, hoàn chỉnh đầy đủ có chiều cao nhỏ nhất
25/51
4.2.2 Biểu diễn cây nhị phân
Biểu diễn bằng mảng
Biểu diễn bằng con trỏ
26/51
4.2.2 Biểu diễn cây nhị phân
Biểu diễn bằng mảng : Dùng mảng một chiều
làm cấu trúc lưu trữ.
Cách 1 : Gốc lưu ở vị trí 0, cha lưu ở vị trí i thì con trái
lưu ở vị trí 2*i+1, con phải lưu ở vị trí 2*i+2
Các cách khác : (Giới thiệu trong biểu diễn cây tổng
quát
Ví dụ :
27/51
4.2.2 Biểu diễn cây nhị phân
A
Biểu diễn bằng mảng
B
C
D
A
B
0
1
C
2
3
4
5
6
D
E
...
7 …
15
…
28/51
4.2.2 Biểu diễn cây nhị phân
Biểu diễn bằng con trỏ
Mỗi nút trong cây là một bản ghi gồm có 3 trường
left
data
right
data chứa thông tin của nút
left là một con trỏ trỏ vào con bên trái của nút
right là một con trỏ trỏ vào con bên phải của nút
Cây là con trỏ trỏ vào nút gốc
29/51
4.2.2 Biểu diễn cây nhị phân
Ví dụ
A
B
NULL
D
NULL
NULL
C
E
NULL
NULL
F
NULL
NULL
G
NULL
Nhận xét : Cây nhị phân có n nút thì có 2*n con trỏ
Trong đó n-1 con trỏ khác NULL
n+1 con trỏ NULL
30/51
4.2.3 Cây nhị phân tìm kiếm
Định nghĩa, khai báo cấu trúc dữ liệu
Các phép toán cơ bản
31/51
Định nghĩa cây nhị phân tìm kiếm
Là cây nhị phân đặc biệt dùng để lưu trữ và tìm kiếm
thông tin
Khóa của nút cha không nhỏ hơn khóa của nút con bên
trái và không lớn hơn khóa của nút con bên phải
32/51
Khai báo cấu trúc dữ liệu
struct node
{