Định nghĩa 6.6
a) Cho đơn đồ thị G. Một đồ thị con T của G được gọi là cây bao trùm của G khi T là một cây chứa tất cả các đỉnh của G.
b) Cho G là đồ thị có trọng số. Cây bao trùm nhỏ nhất của G là cây bao trùm có tổng các trọng số là nhỏ nhất.
Mệnh đề 6.3
Một đơn đồ thị thì liên thông nếu và chỉ nếu nó có một cây bao trùm.
1. 6. a. Giải thuật tìm kiếm theo chiều sâu (DFS – Depth–First Search).
Điều kiện cần: G = (V, E) là một đồ thị vô hướng hay hữu hướng với đỉnh ban đầu là v0; mỗi đỉnh có một trường giá trị luận lý đã được gán giá trị khởi tạo là false; T là tập hợp của các cạnh rỗng; L là một danh sách của các đỉnh rỗng.
Điều kiện đủ: L danh sách các đỉnh trong thứ tự tìm kiếm theo chiều sâu và T là một cây bao trùm cho G.
1) Khởi tạo một ngăn xếp rỗng S cho bộ nhớ tạm của các đỉnh. 2) Thêm đỉnh v0 vào L.
4) Đánh dấu đỉnh v0 đã được duyệt qua.
5) Lặp từ bước 6 tới 8 trong khi S không rỗng. 6) Cho x là phần tử trên cùng trong ngăn xếp S.
7) Nếu x không có bất kỳ đỉnh liền kề nào mà chưa được duyệt, thực hiện tiếp bước 8 tới 12. Ngược lại, xuất ra ngăn xếp S và quay lại bước 5.
8) Cho y là một đỉnh chưa được duyệt qua mà liền kề với x. 9) Thêm cạnh xy vào trong T.
10) Thêm y vào trong L. 11) Đưa y vào trong S.
12) Đánh dấu y đã được duyệt qua.
1. 6. b. Giải thuật tìm kiếm theo chiều rộng (BFS – Breadth–First Search)
Giải thuật tìm kiếm theo chiều rộng về cơ bản giống như giải thuật của Dijkstra mà không chú ý tới các trường khoảng cách.
Điều kiện cần: G = (V, E) là một đồ thị vô hướng hoặc hữu hướng với đỉnh ban đầu là v0; mỗi đỉnh có một trường được viếng thăm có giá trị luận lý được khởi tạo là false; T là tập hợp rỗng của các cạnh; L là một danh sách rỗng của các đỉnh.
Điều kiện đủ: L danh sách các đỉnh trong thứ tự tìm kiếm theo chiều rộng và T là một cây bao trùm với thứ tự tìm kiếm theo chiều rộng cho G.
1) Khởi tạo một hàng đợi rỗng Q trong bộ nhớ tạm của các đỉnh. 2) Đưa đỉnh v0 vào trong Q.
3) Lặp từ bước 4 tới bước 6 trong khi Q không rỗng. 4) Bốc ra từ hàng đợi Q chuyển vào trong x.
5) Thêm x vào trong L.
6) Thực hiện bước 7 cho mỗi đỉnh y liền kề đỉnh x. 7) Nếu y chưa được duyệt qua, thì thực hiện bước 8 và 9. 8) Thêm cạnh xy vào T.
9) Đưa y vào trong hàng đợi Q.