Thuật toán tìm kiếm ưu tiên chiều sâu.
(1) : Chọn một đỉnh tùy ý làm gốc của cây.
(2) : Từđỉnh vừa chọn, xây dựng một đƣờng đi bằng cách ghép lần lƣợt các cạnh mới nối tiếp các cạnh trƣớc đó, sao cho không tạo thành chu trình (tức cạnh ghép thêm phải với tới các đỉnh mới).
(3) : Nếu đƣờng đi vừa lập đã đi qua tất cảcác đỉnh của G (hoặc đã đủn – 1 cạnh) thì ta đƣợc cây khung cần tìm.
Ngƣợc lại, nếu đƣờng đi này chƣa đi qua mọi đỉnh của G thì từ đỉnh cuối cùng của đƣờng đi này, quay lại đỉnh trƣớc nó và lặp lại bƣớc (2).
Thuật toán tìm kiếm ưu tiên chiều rộng.
(1) : Chọn một đỉnh tùy ý làm gốc của cây, ghép tất cả các cạnh kề với gốc đƣợc đỉnh mức 1.
(2) : Từ mỗi đỉnh mức k, ghép tất cả các cạnh kề với đỉnh này sao cho không tạo thành chu trình, ta đƣợc đỉnh mức .
Lặp lại (2). Thuật toán dừng khi tất cả các đỉnh đƣợc ghép vào cây (hoặc đã ghép đủ n – 1
Ví dụ 1:
Tìm cây khung của G theo thuật toán tìm kiếm ưu tiên chiều sâu và chiều rộng?
Hình 4.10. Tìm kiếm cây khung của G.
Giải. n =13. Cây khung của G có 12 cạnh.
- Theo thuật toán tìm kiếm ưu tiên chiều sâu:
{ ) ) (đã ghép đủ 12 cạnh). Cây khung tìm được theo thuật toán này là T1 (Hình 4.11).
Hình 4.11. Cây khung tìm đƣợc theo thuật toán tìm kiếm ƣu tiên chiều sâu, chiều rộng.
- Theo thuật toán tìm kiếm ưu tiên chiều rộng:
{
( )
(Đã ghép đủ n-1 cạnh). Cây khung tìm được theo thuật toán này T2 (Hình 4.11).
Ví dụ 2:
Tìm cây khung của đồ thị G cho bởi ma trận kề:
[ ]
Giải. n= 5. Cây khung của G có 4 cạnh,
Theo thuật toán tìm kiếm ưu tiên chiều sâu:
- Chọn a làm gốc.
- Từ a có đường đi <a; b; c; e>.
- Quay lại b có đường đi <b; d>.
Đã chọn đủ 4 cạnh, ta được cây khung T1
Hình 4.12a. Cây khung T1 .
Theo thuật toán tìm kiếm ưu tiên chiều rộng:
- Chọn a làm gốc (mức 0).
- Đỉnh mức 1 kề gốc a là: b ; d. - Đỉnh mức 2 kề b là : c ; e.
Đã đủ 5 đỉnh, ta được cây khung T2.