TopStudy

Tin học · Lớp 12

Giải SGK Chuyên đề Tin học 12 Bài 12. Biểu diễn đồ thị

14 câu · 21 phút · Ngân hàng đề TopStudy. Đáp án và lời giải do TopStudy biên soạn, mở ngay dưới từng câu.

Làm bài

Nội dung đề

Phần I. Tự luận

Câu 1

1 điểm

Quan sát đồ thị Hình 12.1 và cho biết mỗi tệp dữ liệu sau có ý nghĩa gì?

Hình minh hoạ

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Ý nghĩa của Tệp 1, Tệp 2, Tệp 3:

Tệp 1: Có vẻ như đại diện cho một ma trận kết nối, với các hàng tương ứng với các điểm và cột chỉ ra sự liên kết giữa chúng.

Tệp 2: Có thể biểu diễn các trạng thái hoặc thuộc tính của các điểm trong mạng lưới, với mỗi hàng biểu thị một trạng thái khác nhau.

Tệp 3: Có khả năng là một biểu đồ của các sự kiện hoặc tương tác giữa các điểm, với các số liệu thể hiện mức độ hoặc cường độ của tương tác.

Đồ thị “Đồ thị” bên cạnh các tệp dữ liệu cho thấy mối quan hệ giữa các điểm được biểu diễn bằng các đường nối, tạo ra một cấu trúc mạng hoặc như một mạng nhện. Điều này giúp ta hình dung được cách thức mà dữ liệu số có thể được trực quan hóa thành các mối quan hệ phức tạp.

Câu 2

1 điểm
Tìm hiểu, thảo luận về các cách biểu diễn dữ liệu của một đồ thị G.
Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

điểm và hạn chế riêng. Dưới đây là một số cách phổ biến để biểu diễn đồ thị:

- Danh sách cạnh (Edge List)

- Danh sách kề (Adjacency List)

- Ma trận kề (Adjacency Matrix)

- Danh sách kề và trọng số (Weighted Adjacency List), như đồ thị đường đi ngắn nhất.

- Ma trận trọng số (Weighted Adjacency Matrix)

Mỗi cách biểu diễn có ưu điểm và hạn chế riêng, và việc lựa chọn phụ thuộc vào mục đích cụ thể của việc sử dụng dữ liệu đồ thị.

Câu 3

1 điểm

Vẽ đồ thị có tệp dữ liệu ma trận kề Hình 12.5

Hình minh hoạ

Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Đọc từ trên xuống dưới, từ trái qua phải, ta có các cạnh như sau:

1. Đỉnh 0 kề với đỉnh 2 và 3.

2. Đỉnh 1 kề với đỉnh 2 và 3.

3. Đỉnh 2 kề với đỉnh 0, 1 và 3.

4. Đỉnh 3 kề với đỉnh 0, 1 và 2.

Ta có thể vẽ đồ thị như sau:

Hình minh hoạ

Trong đồ thị này, mỗi đỉnh được biểu diễn bởi một số, và mỗi cạnh giữa các đỉnh được biểu diễn bằng các đoạn thẳng nối hai đỉnh tương ứng.

Câu 4

1 điểm
Có thể có hai tệp dữ liệu dạng danh sách kề nhau nhưng biểu diễn hai đồ thị hoàn toàn giống nhau không?
Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Có, có thể có hai tệp dữ liệu dạng danh sách kề nhau mà biểu diễn hai đồ thị hoàn toàn giống nhau. Điều này có thể xảy ra khi các danh sách kề được sắp xếp khác nhau hoặc khi các đỉnh được đánh số khác nhau, nhưng mối quan hệ kết nối giữa các đỉnh và cạnh vẫn được bảo tồn.

Câu 5

1 điểm
Tìm hiểu, thảo luận cách thiết lập đồ thị (dữ liệu của đồ thị) trong trường hợp tập dữ liệu biểu diễn là ma trận kề hoặc danh sách kề.
Xem đáp án và lời giải

Hướng dẫn chấm do TopStudy biên soạn, mang tính gợi ý

Trong lập trình và xử lý đồ thị, có hai cách phổ biến để biểu diễn dữ liệu của đồ thị: ma trận kề và danh sách kề. Mỗi cách biểu diễn này có những ưu điểm và hạn chế riêng, và việc chọn lựa phụ thuộc vào loại đồ thị và loại thuật toán cụ thể mà bạn muốn thực hiện trên đồ thị đó.

1. Ma trận kề:

Ưu điểm:

Dễ hiểu và dễ thực hiện.

Phù hợp cho việc lưu trữ đồ thị có số lượng cạnh lớn.

Phù hợp cho các thuật toán xử lý đồ thị sử dụng ma trận, như duyệt đồ thị hay tìm đường đi ngắn nhất.

Hạn chế:

Chiếm nhiều không gian lưu trữ, đặc biệt là cho các đồ thị thưa.

Không phù hợp cho việc lưu trữ đồ thị lớn với số lượng đỉnh lớn nhưng số lượng cạnh ít.

2. Danh sách kề:

Ưu điểm:

Tiết kiệm không gian lưu trữ cho các đồ thị thưa, vì chỉ lưu trữ các cạnh thực sự tồn tại.

Phù hợp cho việc lưu trữ đồ thị có số lượng đỉnh lớn nhưng số lượng cạnh ít.

Phù hợp cho việc thêm, xóa cạnh một cách hiệu quả.

Hạn chế:

Khó hiểu hơn so với ma trận kề.

Thời gian truy xuất thông tin của danh sách kề có thể lớn hơn so với ma trận kề, đặc biệt là cho các thuật toán sử dụng ma trận.

Cả hai cách biểu diễn này đều hữu ích và được sử dụng rộng rãi trong thực tế, và lựa chọn giữa chúng phụ thuộc vào yêu cầu cụ thể của bài toán và đặc điểm của dữ liệu đồ thị.

Câu 6

1 điểm
Khẳng định dãy Adj[i] có số lượng phần tử bằng số các phần tử có giá trị 1 của hàng thứ i của ma trận kề A là đúng hay sai?
Xem đáp án và lời giải

Câu 7

1 điểm
Khi nào ma trận kề A chỉ gồm toàn số 0?
Xem đáp án và lời giải

Câu 8

1 điểm
Tìm hiểu, thảo luận cách thiết lập dữ liệu của đồ thị trong trường hợp tệp dữ liệu biểu diễn danh sách các cạnh.
Xem đáp án và lời giải

Câu 9

1 điểm
Một đơn đồ thị, vô hướng có n đỉnh, có thể có số cạnh lớn nhất là bao nhiêu?
Xem đáp án và lời giải

Câu 10

1 điểm
Khi nào thì tất cả các phần tử của Adj đều rỗng?
Xem đáp án và lời giải

Câu 11

1 điểm
Bổ sung thêm đoạn chương trình kiểm tra khi đọc dữ liệu danh sách các cạnh đồ thị của Hoạt động 3 như sau: Với mỗi dòng dữ liệu, nếu hai chỉ số i = j thì bỏ qua dòng này.
Xem đáp án và lời giải

Câu 12

1 điểm
Từ ma trận kề A của đồ thị G có thể tính được số các cạnh của đồ thị không? Nếu được thì tính bằng cách nào?
Xem đáp án và lời giải

Câu 13

1 điểm
Cho ma trận kề A của đồ thị vô hướng G. Viết hàm GraphEdge(A) trả lại danh sách E các cạnh của đồ thị G.
Xem đáp án và lời giải

Câu 14

1 điểm
Cho danh sách kề Adj của đồ thị G. Viết hàm GraphEdge(Adj) trả lại danh sách E các cạnh của đồ thị G. Viết chương trình cho hai trường hợp riêng biệt, G là đồ thị vô hướng và G là đồ thị có hướng.
Xem đáp án và lời giải

Đề cùng chủ đề

Tất cả đề Chuyên đề 3. Tìm hiểu kĩ thuật duyệt đồ thị và ứng dụng · Các bộ sách Tin học Lớp 12