CHƯƠNG 6

CÂY

Nguyễn Quỳnh Diệp diepnq@tlu.edu.vn

1

Nguyễn Quỳnh Diệp

NỘI DUNG

• Các định nghĩa và tính chất

• Các ứng dụng của cây

• Cây khung

• Cây khung nhỏ nhất

Nguyễn Quỳnh Diệp

Toán rời rạc

2

6.1. CÁC ĐỊNH NGHĨA VÀ TÍNH CHẤT

Nguyễn Quỳnh Diệp

Toán rời rạc

3

CÂY

Định nghĩa 1:

Cây là một đồ thị vô hướng, liên thông và không có chu trình đơn

Ví dụ:

Nguyễn Quỳnh Diệp

Toán rời rạc

4

CÂY

Ví dụ: Đồ thị nào sau đây là cây?

Nguyễn Quỳnh Diệp

Toán rời rạc

Đồ thị không có chu trình đơn và không liên thông gọi là rừng.

5

CÂY

Định lí 1:

Một đồ thị vô hướng là một cây nếu giữa mọi cặp đỉnh của nó luôn tồn tại đường đi đơn duy nhất.

Định nghĩa 2:

Nguyễn Quỳnh Diệp

Toán rời rạc

Cây có gốc là cây có một đỉnh được gọi là gốc và mọi cạnh có hướng từ gốc đi ra.

6

CÂY

Ví dụ:

Nguyễn Quỳnh Diệp

Toán rời rạc

7

MỘT SỐ THUẬT NGỮ

Nguyễn Quỳnh Diệp

Toán rời rạc

Nếu v là đỉnh khác gốc, Cha của v là đỉnh u duy nhất sao cho có 1 cạnh hướng từ u đến v. Khi đó u gọi là cha của v; v gọi là con của u. Các đỉnh có cùng cha gọi là anh em.

8

MỘT SỐ THUẬT NGỮ

Nguyễn Quỳnh Diệp

Toán rời rạc

Tổ tiên của một đỉnh khác gốc là các đỉnh trên đường đi từ gốc tời đỉnh này (tức là cha của nó, ông của nó,…cho tới khi đến gốc). Con cháu của đỉnh v là các đỉnh có v như tổ tiên

9

MỘT SỐ THUẬT NGỮ

Nguyễn Quỳnh Diệp

Toán rời rạc

Các đỉnh của cây gọi là lá nếu nó không có con Các đỉnh có con gọi là đỉnh trong

10

MỘT SỐ THUẬT NGỮ

Nguyễn Quỳnh Diệp

Toán rời rạc

Nếu a là đỉnh của 1 cây, thì cây con với gốc a là đồ thị con của cây đang xét, bao gồm a và các con cháu của nó cùng với các cạnh liên thuộc với các con cháu của a.

11

CÂY m-phân

Định nghĩa 3:

• Cây có gốc được gọi là cây m-phân nếu tất cả các đỉnh trong của

• Cây được gọi là m-phân đầy đủ nếu mọi đỉnh trong có đúng m

nó không có hơn m con.

con.

Nguyễn Quỳnh Diệp

Toán rời rạc

• Khi m = 2 ta có cây nhị phân

12

CÂY CÓ GỐC

Cây có gốc được sắp:

Cây có gốc, được sắp (có thứ tự) là cây có gốc mà trong đó các con của mỗi đỉnh trong được sắp xếp theo một thứ tự nhất định.

Nguyễn Quỳnh Diệp

Toán rời rạc

13

VÍ DỤ VỀ CÂY

Tổ chức trong công ty

Nguyễn Quỳnh Diệp

Toán rời rạc

14

VÍ DỤ VỀ CÂY

Cấu trúc thư mục

Nguyễn Quỳnh Diệp

Toán rời rạc

15

CÁC TÍNH CHẤT CỦA CÂY

Định lí 2:

Cây với n đỉnh có đúng (n-1) cạnh

Định lí 3:

Cây m-phân đầy đủ với i đỉnh trong sẽ có tất cả n = m.i + 1 đỉnh.

Nguyễn Quỳnh Diệp

Toán rời rạc

16

CÁC TÍNH CHẤT CỦA CÂY

Định lí 4:

Cây m-phân đầy đủ với

(i) n đỉnh có 𝒊 =

đỉnh trong và 𝒍 =

𝒎−𝟏 𝒏+𝟏 𝒎

𝒏−𝟏 𝒎

(ii) i đỉnh trong, có n= m.i + 1 đỉnh và l = (m – 1) .i +1 lá

đỉnh trong

(iii) l lá, có 𝒏 =

đỉnh và 𝒊 =

𝒍 −𝟏 𝒎 −𝟏

𝒎𝒍 −𝟏 𝒎−𝟏

Nguyễn Quỳnh Diệp

Toán rời rạc

17

CÁC TÍNH CHẤT CỦA CÂY

Ví dụ: Trò chơi viết thư dây chuyền. Ban đầu có một người nhận được một bức thư và giả sử rằng khi nhận được một bức thư hoặc sẽ viết thư cho bốn người khác hoặc không viết cho ai. Hỏi có bao nhiêu người nhận được thư kể cả người đầu tiên nếu không có ai nhận được nhiều hơn một bức và trò chơi kết thúc khi có 100 người nhận thư mà ko viết cho ai?

Giải: • Trò chơi biểu diễn bằng cây tứ phân. • Có 100 không viết thư nên số lá của cây là l = 100 • Số người nhận thư là n = (4.100 -1 )/(4-1) = 133 • Số các đỉnh trong là i = (100-1)/(4-1) = 33 đỉnh, tức 33 người

viết thư

Nguyễn Quỳnh Diệp

Toán rời rạc

18

CÁC TÍNH CHẤT CỦA CÂY

• Mức của đỉnh v trong cây là độ dài của đường đi duy nhất

từ gốc tới nó. Gốc có mức 0

• Độ cao của cây là mức cao nhất của tất cả các đỉnh

• Cây m-phân có độ cao h được gọi là cân đối nếu tất cả các

lá đều ở mức h và (h-1)

Nguyễn Quỳnh Diệp

Toán rời rạc

19

CÁC TÍNH CHẤT CỦA CÂY

Định lí 5:

Có nhiều nhất mh lá trong cây m-phân với độ cao h

Nguyễn Quỳnh Diệp

Toán rời rạc

20

6.2. CÁC ỨNG DỤNG CỦA CÂY

Nguyễn Quỳnh Diệp

Toán rời rạc

21

CÁC ỨNG DỤNG CỦA CÂY

• Cây tìm kiếm nhị phân

• Cây quyết định

• Các mã tiền tố

Nguyễn Quỳnh Diệp

Toán rời rạc

22

TÌM KIẾM NHỊ PHÂN

Cây nhị phân:

• Là cây có một cây con trái và một cây con phải • Mỗi đỉnh được gán một nhãn sao cho:

• Lớn hơn nhãn của tất cả các đỉnh thuộc cây con trái của nó • Nhỏ hơn nhãn của tất cả các đỉnh thuộc cây con bên phải của

Nguyễn Quỳnh Diệp

Toán rời rạc

23

TÌM KIẾM NHỊ PHÂN

Xây dựng cây tìm kiếm nhị phân: • Bắt đầu cây có đúng 1 đỉnh (gốc) • Thêm một phần tử mới:

 So sánh với nhãn của đỉnh, bắt đầu từ gốc  Đi sang trái nếu nó nhỏ hơn  Đi sang phải nếu nó lớn hơn  Tạo đỉnh mới là con bên trái nếu phần tử nhỏ hơn nhãn của

đỉnh và đỉnh không có con trái

đỉnh và đỉnh không có con phải

Nguyễn Quỳnh Diệp

Toán rời rạc

 Tạo đỉnh mới là con bên phải nếu phần tử lớn hơn nhãn của

24

TÌM KIẾM NHỊ PHÂN

Ví dụ: Tạo cây tìm kiếm nhị phân cho các từ sau: mathematics,

physics,geography, zoology, meteology, geology, psychology, chemistry

Physics > Mathemetics

Geography < Mathemetics

Zoology > Mathemetics Zoology > Physics

Geology < Mathemetics Geology > Geography

Meteorology > Mathemetics Meteorology < Physics

Chemistry < Mathemetics Chemistry < Geography

Psychology > Mathemetics Psychology > Physics Psychology < Zoology

Nguyễn Quỳnh Diệp

Toán rời rạc

25

TÌM KIẾM NHỊ PHÂN

Thuật toán tìm kiếm nhị phân: • Định vị phần tử x trong cây tìm kiếm nhị phân nếu nó là

nhãn của một đỉnh

• Nếu x không là nhãn của đỉnh nào, thêm mới x vào cây

Nguyễn Quỳnh Diệp

Toán rời rạc

26

TÌM KIẾM NHỊ PHÂN

THUẬT TOÁN : Thuật toán tìm kiếm nhị phân

Procedure insertion(T: cây tìm kiếm nhị phân, x: phần tử) v := gốc của T { đỉnh không có trong T sẽ có giá trị bằng null } while v  null và label(v)  x begin

if x < label(v) then

if con bên trái của v  null then v := con bên trái của v else thêm đỉnh mới là con trái của v và đặt v := null

else

if con bên phải của v  null then v := con bên phải của v else thêm đỉnh mới là con phải của v và đặt v := null

end if gốc của T = null then thêm đỉnh v vào cây và gán cho nó nhãn là x else if v = null hoặc label(v)  x then gán nhãn cho đỉnh mới là x và đặt v là đỉnh mới này { v = vị trí của x }

Nguyễn Quỳnh Diệp

Toán rời rạc

27

6.3. CÁC PHƯƠNG PHÁP DUYỆT CÂY

Nguyễn Quỳnh Diệp

Toán rời rạc

28

CÁC PHƯƠNG PHÁP DUYỆT CÂY

• Duyệt tiền thứ tự (thứ tự trước)

• Duyệt trung thứ tự (thứ tự giữa)

Nguyễn Quỳnh Diệp

• Duyệt hậu thứ tự (thứ tự sau) Toán rời rạc

29

DUYỆT TIỀN THỨ TỰ

Định nghĩa 1:

Giả sử T là một cây được sắp thứ tự với gốc r. Nếu T chỉ có nút gốc thì r là duyệt tiền thứ tự của cây T. Ngược lại, thì gọi T1 , T2 …, Tn là các cây con của T từ trái qua phải. Duyệt tiền thứ tự là:

• Thăm r • Duyệt T1 theo kiểu tiền thứ tự • Duyệt T2 theo kiểu tiền thứ tự • ….. • Duyệt Tn theo kiểu tiền thứ tự

Nguyễn Quỳnh Diệp

Toán rời rạc

30

DUYỆT TIỀN THỨ TỰ

Ví dụ: Cách duyệt tiền thứ tự sẽ thăm các đỉnh của cây

theo thứ tự nào?

Nguyễn Quỳnh Diệp

Toán rời rạc

31

DUYỆT TIỀN THỨ TỰ

THUẬT TOÁN : Duyệt kiểu tiền thứ tự

Procedure Preorder (T: cây có gốc được sắp) r := gốc của T Liệt kê r for mỗi cây con c của r từ trái sang phải begin

T(c) := cây con với gốc c Preorder(T(c))

end

Nguyễn Quỳnh Diệp

Toán rời rạc

32

DUYỆT TRUNG THỨ TỰ

Định nghĩa 2:

Giả sử T là một cây được sắp thứ tự với gốc r. Nếu T chỉ có nút gốc thì r là duyệt trung thứ tự của cây T. Ngược lại, thì gọi T1 , T2 …, Tn là các cây con của T từ trái qua phải. Duyệt trung thứ tự là:

• Duyệt T1 theo kiểu trung thứ tự • Thăm r • Duyệt T2 theo kiểu trung thứ tự • ….. • Duyệt Tn theo kiểu trung thứ tự

Nguyễn Quỳnh Diệp

Toán rời rạc

33

DUYỆT TRUNG THỨ TỰ

Ví dụ: Cách duyệt trung thứ tự sẽ thăm các đỉnh của

cây theo thứ tự nào?

Nguyễn Quỳnh Diệp

Toán rời rạc

34

DUYỆT TRUNG THỨ TỰ

THUẬT TOÁN : Duyệt kiểu trung thứ tự

Procedure Inorder (T: cây có gốc được sắp) r := gốc của T if r là lá then liệt kê r else begin l := con đầu tiên từ trái sang phải của r T(l) := cây con với gốc l Inorder(T(l)) Liệt kê r for mỗi cây con c của r từ trái sang phải trừ l

T(c) := cây con với gốc c Inorder(T(c))

Nguyễn Quỳnh Diệp

Toán rời rạc

end

35

DUYỆT HẬU THỨ TỰ

Định nghĩa 3:

Giả sử T là một cây được sắp thứ tự với gốc r. Nếu T chỉ có nút gốc thì r là duyệt trung thứ tự của cây T. Ngược lại, thì gọi T1 , T2 …, Tn là các cây con của T từ trái qua phải. Duyệt hậu thứ tự là:

• Duyệt T1 theo kiểu hậu thứ tự • Duyệt T2 theo kiểu hậu thứ tự • ….. • Duyệt Tn theo kiểu hậu thứ tự • Thăm r

Nguyễn Quỳnh Diệp

Toán rời rạc

36

DUYỆT TRUNG THỨ TỰ

Ví dụ: Cách duyệt hậu thứ tự sẽ thăm các đỉnh của cây theo

Nguyễn Quỳnh Diệp

Toán rời rạc

thứ tự nào?

37

DUYỆT HẬU THỨ TỰ

THUẬT TOÁN : Duyệt kiểu hậu thứ tự

Procedure Postorder (T: cây có gốc được sắp) r := gốc của T for mỗi cây con c của r từ trái sang phải begin

T(c) := cây con với gốc c Postorder(T(c))

end Liệt kê r

Nguyễn Quỳnh Diệp

Toán rời rạc

38

CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ

• Có thể dùng để biểu diễn biểu thức phức tạp:

• Mệnh đề phức hợp • Tập hợp • Biểu thức số học

• Biểu diễn bằng cây có gốc và được sắp, trong đó:

• đỉnh trong biểu thị các phép toán • lá biểu thị các số hay các biến

Nguyễn Quỳnh Diệp

Toán rời rạc

39

CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ

Ví dụ: Tìm cây có gốc biểu diễn biểu thức

𝒙 + 𝒚 ↑ 𝟐 + (

)

𝒙 − 𝟒 𝟑

Biểu thức có đầy đủ dấu ngoặc đơn gọi là dạng trung tố Nguyễn Quỳnh Diệp

Toán rời rạc

40

CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ

• Biểu thức được viết dưới dạng tiền tố gọi là kí pháp Ba

Lan

• Khi duyệt biểu thức dạng tiền tố, ta làm như sau:

• Đi từ phải sang trái

• Gặp một toán tử thực hiện phép toán tương ứng với hai toán

hạng đi liền bên phải của toán tử

Ví dụ 1: Tính giá trị biểu thức tiền tố

+ - * 2 3 5 / ↑ 2 3 4

Nguyễn Quỳnh Diệp

Toán rời rạc

41

CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ

• Biểu thức được viết dưới dạng hậu tố gọi là kí pháp Ba

Lan ngược

• Khi duyệt biểu thức dạng hậu tố, ta làm như sau:

• Đi từ trái sang phải

• Thực hiện phép toán khi có một toán tử đi sau hai toán hạng

Ví dụ 2: Tính giá trị biểu thức hậu tố

7 8 + 2 ↑ 7 4 – 3 / +

Nguyễn Quỳnh Diệp

Toán rời rạc

42

CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ

Ví dụ 3:

a). Hãy biểu diễn biểu thức ((x+2)^3)*((y-(3+x))-5) bằng cây nhị

phân.

b). Hãy viết thứ tự duyệt cây dưới dạng: tiền tố, hậu tố, trung tố

Nguyễn Quỳnh Diệp

Toán rời rạc

43

CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ

Ví dụ 4:

Hãy vẽ cây ứng với

a. + * + - 5 3 2 1 4

b. ^ + 2 3 – 5 1

c. * / 9 3 + * 2 4 – 7 6

Nguyễn Quỳnh Diệp

Toán rời rạc

44

CÁC KÍ PHÁP TRUNG TỐ, TIỀN TỐ VÀ HẬU TỐ

Ví dụ 5:

Hãy tính giá trị các biểu thức sau

a. 5 2 1 - - 3 1 4 + + *

b. + - ^ 3 2 ^ 2 3 / 6 – 4 2

c. 9 3 / 5 + 7 2 - *

d. * + 3 + 3 ^ 3 + 3 3 3

e. 3 2 * 2 ^ 5 3 – 8 4 / * -

Nguyễn Quỳnh Diệp

Toán rời rạc

45

6.4. CÂY KHUNG

Nguyễn Quỳnh Diệp

Toán rời rạc

46

CÂY KHUNG

Bài toán giao thông ở Maine:

Nguyễn Quỳnh Diệp

Toán rời rạc

• Chính quyền địa phương muốn cào tuyết một số ít nhất các con đường sao cho luôn luôn có đường thông suốt nối hai thành phố bất kì

47

CÂY KHUNG

Định nghĩa 1:

Cho G là một đơn đồ thị. Một cây được gọi là cây khung của G nếu nó là một đồ thị con của G và chứa tất cả các đỉnh của G.

Các cách tìm cây khung của đồ thị:

 Xóa đi các cạnh tạo ra chu trình

 Bằng phương pháp tìm kiếm theo chiều rộng

Nguyễn Quỳnh Diệp

Toán rời rạc

 Bằng phương pháp tìm kiếm theo chiều sâu

48

XÓA CÁC CẠNH TẠO CHU TRÌNH

Nguyễn Quỳnh Diệp

Toán rời rạc

49

TÌM KIẾM THEO CHIỀU SÂU

• Chọn tùy ý 1 đỉnh của đồ thị làm gốc

• Xây dựng đường đi từ đỉnh này bằng cách ghép nối tiếp các

cạnh vào đường đi, cho đến khi không thể ghép được nữa.

• Nếu đường đi chưa đi qua tất cả các đỉnh thì lùi lại một

bước và xây dựng đường đi mới qua các đỉnh chưa thuộc

đường đi.

• Tiếp tục lùi lại cho đến khi không thực hiện được nữa

Tìm kiếm ưu tiên chiều sâu cũng được gọi là thủ tục quay lui

Nguyễn Quỳnh Diệp

Toán rời rạc

50

TÌM KIẾM THEO CHIỀU SÂU

THUẬT TOÁN : Tìm kiếm theo chiều sâu

Procedure DFS(G: đồ thị liên thông với các đỉnh v1 , v2… vn) T := cây chỉ chứa một đỉnh v1 Visit(v1)

thêm đỉnh w và cạnh (v, w) vào T Visit(w)

Procedure Visit(v: đỉnh của G) for mỗi đỉnh w liền kề với v và chưa có trong T begin

Nguyễn Quỳnh Diệp

Toán rời rạc

end

51

TÌM KIẾM THEO CHIỀU SÂU

Ví dụ:

Bắt đầu từ đỉnh f

Nguyễn Quỳnh Diệp

Toán rời rạc

52

TÌM KIẾM THEO CHIỀU RỘNG

• Chọn tùy ý một đỉnh của đồ thị làm gốc

• Ghép vào tất cả các cạnh liên thuộc với đỉnh này. Đỉnh

ghép vào là đỉnh mức 1 của cây khung

• Với mỗi đỉnh mức 1, ghép tất cả các cạnh liên thuộc với

nó vào cây mà không tạo ra chu trình, ta được các đỉnh

mức 2.

• Tiếp tục cho đến khi tất cả các đỉnh được ghép vào cây

Nguyễn Quỳnh Diệp

Toán rời rạc

53

TÌM KIẾM THEO CHIỀU RỘNG

Ví dụ: Dùng thuật toán tìm kiếm theo chiều rộng, tìm cây

khung của đồ thị với đỉnh xuất phát là e

Nguyễn Quỳnh Diệp

Toán rời rạc

54

TÌM KIẾM THEO CHIỀU RỘNG

THUẬT TOÁN : Tìm kiếm theo chiều rộng

Procedure BFS(G: đồ thị liên thông với các đỉnh v1 , v2… vn) T := cây chỉ chứa một đỉnh v1 L := danh sách rỗng Đặt v1 vào danh sách L gồm các đỉnh không xử lí while L khác rỗng begin Xóa đỉnh đầu tiên, v, khỏi L for mỗi đỉnh liền kề w của v

if w chưa nằm trong L và không thuộc T then begin

thêm đỉnh w vào cuối danh sách L thêm w và cạnh {v, w} vào T

end

end

Nguyễn Quỳnh Diệp

Toán rời rạc

55

BÀI TẬP

56

Nguyễn Quỳnh Diệp

Toán rời rạc

 Bài 1: Tìm cây khung của đồ thị bằng cách xóa đi các cạnh

56

BÀI TẬP

 Bài 2: Tìm cây khung của đồ thị bằng kĩ thuật tìm kiếm theo

57

Nguyễn Quỳnh Diệp

Toán rời rạc

chiều sâu. Chọn a làm gốc của cây.

57

6.5. CÂY KHUNG NHỎ NHẤT

Nguyễn Quỳnh Diệp

Toán rời rạc

58

CÂY KHUNG NHỎ NHẤT

Định nghĩa 1:

Nguyễn Quỳnh Diệp

Toán rời rạc

Cây khung nhỏ nhất trong một đồ thị liên thông có trọng số là một cây khung có tổng trọng số trên các cạnh của nó là nhỏ nhất

59

CÂY KHUNG NHỎ NHẤT

Thuật toán tìm cây khung nhỏ nhất:

 Thuật toán Prim

 Thuật toán Kruskal

Nguyễn Quỳnh Diệp

Toán rời rạc

60

THUẬT TOÁN PRIM

• Do Robert Prim đưa ra năm 1957

• Thuật toán:

 Chọn một cạnh bất kì có trọng số nhỏ nhất, đặt vào

khung

 Ghép vào cây các cạnh có trọng số nhỏ nhất, liên thuộc

với 1 đỉnh của cây và không tạo ra chu trình

 Dừng khi có (n-1) cạnh được ghép vào cây

Nguyễn Quỳnh Diệp

Toán rời rạc

61

THUẬT TOÁN PRIM

Ví dụ: Tìm cây khung nhỏ nhất

Trọng số

Lần chọn

Cạnh

Tổng cộng : 24

Nguyễn Quỳnh Diệp

Toán rời rạc

62

THUẬT TOÁN PRIM

THUẬT TOÁN : Thuật toán Prim

Procedure Prim(G: đồ thị liên thông có trọng số với n đỉnh) T := cạnh có trọng số nhỏ nhất for i:= 1 to n-2 begin

e := cạnh có trọng số tối thiểu, liên thuộc với một đỉnh trong

T và không tạo ra chu trình trong T nếu ghép nó vào T

T := T với e được ghép vào

end { T là cây khung nhỏ nhất của G }

Nguyễn Quỳnh Diệp

Toán rời rạc

63

THUẬT TOÁN PRIM

Ví dụ: Tìm cây khung nhỏ nhất

4

a b

2

3

3

e

1

1

c d

2

Nguyễn Quỳnh Diệp

Toán rời rạc

64

THUẬT TOÁN PRIM

• Cây khung nhỏ nhất gồm các cạnh: {E, C} ; {E, D}; {E, B} ;

{D, A}

• Tổng trọng số nhỏ nhất của cây khung là: 7

4

a b

2

3

3

e

1

1

d

c

2

Nguyễn Quỳnh Diệp

Toán rời rạc

65

THUẬT TOÁN KRUSKAL

• Do Joseph Kruskal đưa ra năm 1956

• Thuật toán:

 Chọn một cạnh bất kỳ có trọng số nhỏ nhất, đặt vào

khung

 Ghép vào cây các cạnh có trọng số nhỏ nhất và không

tạo ra chu trình

 Dừng khi có (n-1) cạnh được ghép vào cây

Nguyễn Quỳnh Diệp

Toán rời rạc

66

THUẬT TOÁN KRUSKAL

THUẬT TOÁN : Thuật toán Kruskal

Procedure Kruskal(G: đồ thị n đỉnh, liên thông, có trọng số) T := đồ thị rỗng for i:= 1 to n-1 begin

e := cạnh bất kì của G với trọng số nhỏ nhất và không tạo ra

chu trình trong T khi ghép vào T T := T với e được ghép vào

end { T là cây khung nhỏ nhất của G }

Nguyễn Quỳnh Diệp

Toán rời rạc

67

THUẬT TOÁN KRUSKAL

Ví dụ: Tìm cây khung nhỏ nhất

Trọng số

Lần chọn

Cạnh

Tổng cộng : 24

Nguyễn Quỳnh Diệp

Toán rời rạc

68

THUẬT TOÁN PRIM

Ví dụ: Tìm cây khung nhỏ nhất

4

a b

2

3

3

e

1

1

c d

2

Nguyễn Quỳnh Diệp

Toán rời rạc

69

BÀI TẬP

70

Nguyễn Quỳnh Diệp

Toán rời rạc

 Bài 2: Tìm cây khung nhỏ nhất dùng thuật toán Prim và Kruskal

70

BÀI TẬP

71

Nguyễn Quỳnh Diệp

Toán rời rạc

 Bài 2: Tìm cây khung nhỏ nhất dùng thuật toán Prim và Kruskal

71

72

Nguyễn Quỳnh Diệp