Professional Documents
Culture Documents
09/12/2013
Định nghĩa 1 a
I Cây (Tree) là đồ thị liên
b c d
thông và không có chu trình
I Rừng (Forest) là đồ thị e f
không có chu trình (a) dạng cây
a g
b c d h i
e f j k
(b) dạng rừng
Hình 1: Các đồ thị dạng cây & rừng
Định lý 1
Nếu một cây có n đỉnh với n ≥ 2 thì cây chứa ít nhất hai đỉnh treo
Chứng minh
I Cho cây T = (V , E ), xét cạnh (a, b) ∈ E
I Gọi P = u...a...b...v là đường đi sơ cấp dài nhất trên cây T
chứa cạnh (a, b)
I Ta nhận thấy u và v phải là 2 đỉnh treo
Định nghĩa 2
Cho một đồ thị G = (V , E ) liên thông và T = (V , F ) là đồ thị bộ
phận của G. Nếu T là cây thì nó được gọi là cây khung
(spanning tree) của đồ thị G.
Định lý 3
Một đồ thị liên thông nếu và chỉ nếu nó có cây khung
Chứng minh
I (⇐) Đồ thị G có cây khung T thì đồ thị G liên thông. Điều
này suy ra tự định nghĩa về cây và cây khung
I (⇒) Đồ thị G liên thông thì đồ thị G có cây khung T
I Nếu đồ thị G có một chu trình C thì loại bỏ một cạnh của chu
trình để tạo ra đồ thị con G 0 . Đồ thị G 0 là một đồ thị liên
thông
I Tiếp tục quá trình loại bỏ cạnh cho đến khi không thể làm
được thì sẽ được đồ thị con T không có chu trình. Đồ thị T là
cây khung
e
d
b
c
Minh họa thuật toán tìm cây khung
Cho đồ thị G dưới và đỉnh bắt đầu là a. Cây khung T = (VT , ET )
được tìm như sau
e
d
b
c
Minh họa thuật toán tìm cây khung
Cho đồ thị G dưới và đỉnh bắt đầu là a. Cây khung T = (VT , ET )
được tìm như sau
b
c
Minh họa thuật toán tìm cây khung
Cho đồ thị G dưới và đỉnh bắt đầu là a. Cây khung T = (VT , ET )
được tìm như sau
b
c
Minh họa thuật toán tìm cây khung
Cho đồ thị G dưới và đỉnh bắt đầu là a. Cây khung T = (VT , ET )
được tìm như sau
b
c
Minh họa thuật toán tìm cây khung
Cho đồ thị G dưới và đỉnh bắt đầu là a. Cây khung T = (VT , ET )
được tìm như sau
b
c
Minh họa thuật toán tìm cây khung
Cho đồ thị G dưới và đỉnh bắt đầu là a. Cây khung T = (VT , ET )
được tìm như sau
Định nghĩa 3
Cho một đồ thị có trọng số G = (V , E , L) và T là tập các cây
khung của G
I Đồ thị T ∈ T được gọi là cây khung có trọng số nhỏ nhất
(minimum spanning tree) nếu trọng số của nó nhỏ nhất
Chứng minh
Sinh viên tự chứng minh
4 5
1
b 8 c
Minh họa thuật toán Prim
Cho đồ thị có trọng số G dưới và đỉnh bắt đầu là a. Cây khung
nhỏ nhất T = (VT , ET ) được tìm như sau
4 5
1
b 8 c
Minh họa thuật toán Prim
Cho đồ thị có trọng số G dưới và đỉnh bắt đầu là a. Cây khung
nhỏ nhất T = (VT , ET ) được tìm như sau
4 5
1
b 8 c
Minh họa thuật toán Prim
Cho đồ thị có trọng số G dưới và đỉnh bắt đầu là a. Cây khung
nhỏ nhất T = (VT , ET ) được tìm như sau
4 5
1
b 8 c
Minh họa thuật toán Prim
Cho đồ thị có trọng số G dưới và đỉnh bắt đầu là a. Cây khung
nhỏ nhất T = (VT , ET ) được tìm như sau
4 5
1
b 8 c
Minh họa thuật toán Prim
Cho đồ thị có trọng số G dưới và đỉnh bắt đầu là a. Cây khung
nhỏ nhất T = (VT , ET ) được tìm như sau
4 5
1
b 8 c
Minh họa thuật toán Prim
Cho đồ thị có trọng số G dưới và đỉnh bắt đầu là a. Cây khung
nhỏ nhất T = (VT , ET ) được tìm như sau
Chứng minh
Sinh viên tự chứng minh
Định nghĩa 4
Cho đồ thị có hướng G = (V , E ), đồ thị G được gọi là cây có
hướng nếu nó thỏa mãn hai điều kiện sau:
1. G không có chu trình
2. G có gốc
Định nghĩa 5
Cho một đồ thị có hướng G = (V , E ) gồm n đỉnh. Các phát biểu
sau là tương đương
1. Đồ thị G là một cây có hướng
2. Đồ thị G có một đỉnh r và từ r tồn tại một đường đi duy nhất
đến các đỉnh còn lại
3. Đồ thị G tựa liên thông mạnh tối tiểu (tức là nếu xóa bớt bất
kỳ một cạnh nào thì G sẽ không còn tựa liên thông mạnh)
4. Đồ thị G liên thông và có đỉnh r sao cho d − (r ) = 0 và
d − (v) = 1 với mọi v 6= r
5. Đồ thị G không có chu trình và có đỉnh r sao cho d − (r ) = 0
và d − (v) = 1 với mọi v 6= r
Định lý 6
Cho G là một đồ thị có hướng
I Nếu G chứa một đồ thị bộ phận là cây T có hướng thì G tựa
liên thông mạnh.
I Nếu G tựa liên thông mạnh thì G có chứa một đồ thị bộ phận
T là cây có hướng
Trái đất
TPHCM Hà Nội
(a + b) ∗ (c − d)
+ -
a b c d
NP VP
Det N V PP
on Det N
the mat
Định nghĩa 6
I Cây (Tree) T gồm một tập hợp n đỉnh - nút (node)
{p1 , p2 , ..., pn }
I Trong đó một nút duy nhất là nút gốc pr ; nghĩa là có đường
đi đến tất cả các đỉnh còn lại
I Các nút còn lại được chia thành m tập hợp không giao nhau
{T1 , T2 , ..., Tm } và mỗi tập này lại là cây con (child tree)
I Nếu n = 0 thì cây T là cây rỗng (null tree)
E F
G H C D
I J
E F
G H C D
I J
A 2
E 3 F 2
G 0 K 0 H 2 C 0 D 0
I 0 J 0
A 2
E 3 F 2
G 0 K 0 H 2 C 0 D 0
I 0 J 0
p = root
0
level (p) = (4)
level (parent (p)) + 1 p =
6 root
A 0
E 1 F 1
G 2 K 2 H 2 C 2 D 2
I 3 J 3
A 0
E 1 F 1
G 2 K 2 H 2 C 2 D 2
I 3 J 3
E F
G K H C D
I J
Hình 15: Dãy {A, E, H, I} là đường đi, dãy {A, E, C} không phải là
đường đi
Định nghĩa 7
I Cây tuyến tính (linear tree): là cây có bậc bằng 1
I Cây nhị phân (binary tree): là cây có bậc bằng 2
I Cây tam phân (ternary tree): là cây có bậc bằng 3
I Cây m-nhánh (m-way tree): là cây có bậc bằng m
Định nghĩa 8
Một số cây nhị phân đặc biệt
I Cây nhị phân đầy đủ (full binary tree): là cây mà mỗi nút có
0 hoặc 2 nút con
I Cây nhị phân hoàn chỉnh (complete binary tree): là cây mà
có
1. Đầy đủ các nút từ mức 0 đến h − 1 (h là chiều cao của cây)
2. Riêng mức h thì các nút liên tiếp từ trái sang phải
Định lý 7
1. Nếu T là cây nhị phân có chiều cao là h thì số nút tối đa của
cây là 2h − 1
2. Nếu T là cây nhị phân có chiều cao là h thì số nút lá tối đa
của cây là 2h−1
3. Nếu T là cây nhị phân thì sẽ không có quá 2k nút có mức
k≥0
4. Nếu T là một cây nhị phân có n nút thì chiều cao nhỏ nhất
có thể của cây là là log2 (n + 1)
l =i +1
n = 2i + 1
i = n−1
2 (6)
l = n+1
2
n = 2l − 1
i =l −1
L 2 R 3 L 1 R 3 L 1 R 2