Viết chương trình in ra thứ tự các đỉnh đã được duyệt bằng thuật toán DFS theo cả hai cách

Giải Chuyên đề Tin 12 Bài 14: Kĩ thuật duyệt đồ thị theo chiều sâu - Kết nối tri thức

Vận dụng 1 trang 71 Chuyên đề Tin học 12: Viết chương trình in ra thứ tự các đỉnh đã được duyệt bằng thuật toán DFS theo cả hai cách đệ quy và không đệ quy, áp dụng cho đồ thị có hướng Hình 14.1b trong phần Khởi động.

Quảng cáo

Lời giải:

Chương trình Python mô phỏng thuật toán DFS theo cả hai cách đệ quy và không đệ quy:

* Đệ quy (Recursive):

def DFS_recursive(graph, vertex, visited=None):

    if visited is None:

       visited = set()

   visited.add(vertex)

   print(vertex, end=' ')

    for neighbor in graph[vertex]:

       if neighbor not in visited:

           DFS_recursive(graph, neighbor, visited)

# Ví dụ sử dụng:

graph = {

    0: [1, 2],

    1: [3],

    2: [4],

    3: [],

    4: [5],

    5: [3],

    6: [5],

    7: [6]

}

DFS_recursive(graph, 0)

* Không đệ quy (Non-recursive):

def DFS_non_recursive(graph, start_vertex):

    visited = set()

    stack = [start_vertex]

    while stack:

        vertex = stack.pop()

        if vertex not in visited:

            print(vertex, end=' ')

            visited.add(vertex)

            # Thêm vào ngăn xếp các đỉnh kề chưa được thăm

            stack.extend([neighbor for neighbor in graph[vertex] if neighbor not in visited])

# Ví dụ sử dụng:

graph = {

    0: [1, 2],

    1: [3],

    2: [4],

    3: [],

    4: [5],

    5: [3],

    6: [5],

    7: [6]

}

DFS_non_recursive(graph, 0)

Quảng cáo

Lời giải bài tập Chuyên đề Tin 12 Bài 14: Kĩ thuật duyệt đồ thị theo chiều sâu hay, ngắn gọn khác:

Quảng cáo
Quảng cáo

Xem thêm lời giải bài tập Chuyên đề học tập Tin học 12 Kết nối tri thức hay, ngắn gọn khác:

Xem thêm các tài liệu học tốt lớp 12 hay khác:

ĐỀ THI, GIÁO ÁN, GÓI THI ONLINE DÀNH CHO GIÁO VIÊN VÀ PHỤ HUYNH LỚP 12

Bộ giáo án, đề thi, bài giảng powerpoint, khóa học dành cho các thầy cô và học sinh lớp 12, đẩy đủ các bộ sách cánh diều, kết nối tri thức, chân trời sáng tạo tại https://tailieugiaovien.com.vn/ . Hỗ trợ zalo VietJack Official


Giải bài tập lớp 12 sách mới các môn học
Tài liệu giáo viên