JavaScript is required

Để dùng danh sách liên kết, xét hai khai báo sau (cần 1KB để lưu dữ thông tin về một sinh viên):1- Khai báo 1: struct SV{ thongtin; struct SV tiep;};2- Khai báo 2: struct SV {thongtin}; struct DS{struct SV sv; struct DS* tiep;}; (Với “thongtin” là một thành phần dữ liệu của cấu trúc);Chọn câu đúng nhất trong các câu sau:

A.

Khai báo 1 tốn nhiều bộ nhớ hơn khai báo 2.

B.

Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi thay đổi vị trí 2 sinh viên.

C.

Khai báo 1 sẽ giúp tiết kiệm câu lệnh hơn khi viết hàm thay đổi vị trí 2 sinh viên.

D.
Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi duyệt danh sách.
Trả lời:

Đáp án đúng: C


Phân tích: * **Khai báo 1:** `struct SV{ thongtin; struct SV *tiep;}` * Mỗi nút trong danh sách liên kết chỉ chứa thông tin của một sinh viên và một con trỏ đến nút tiếp theo. * **Khai báo 2:** `struct SV {thongtin}; struct DS{struct SV sv; struct DS* tiep;};` * Có hai cấu trúc: `SV` chứa thông tin sinh viên và `DS` chứa một biến kiểu `SV` và một con trỏ đến nút tiếp theo. Đánh giá các phương án: * **A. Khai báo 1 tốn nhiều bộ nhớ hơn khai báo 2:** * Sai. Khai báo 2 tốn nhiều bộ nhớ hơn vì mỗi nút trong danh sách liên kết (kiểu `DS`) chứa thêm một bản sao của cấu trúc `SV` (thongtin), ngoài con trỏ. * **B. Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi thay đổi vị trí 2 sinh viên:** * Sai. Việc thay đổi vị trí hai sinh viên trong danh sách liên kết liên quan đến việc thay đổi các con trỏ, không phụ thuộc vào việc khai báo cấu trúc như thế nào. Hơn nữa, khai báo 2 có thể chậm hơn một chút do phải truy cập gián tiếp qua `sv`. * **C. Khai báo 1 sẽ giúp tiết kiệm câu lệnh hơn khi viết hàm thay đổi vị trí 2 sinh viên:** * Đúng. Với khai báo 1, việc thay đổi vị trí hai sinh viên đơn giản là thay đổi các con trỏ. Với khai báo 2, bạn cần truy cập `sv` để lấy thông tin sinh viên, làm cho code phức tạp hơn một chút. * **D. Khai báo 2 sẽ giúp chương trình chạy nhanh hơn khi duyệt danh sách:** * Sai. Tốc độ duyệt danh sách phụ thuộc chủ yếu vào tốc độ truy cập bộ nhớ và số lượng con trỏ cần truy cập. Trong trường hợp này, khai báo 2 có thể chậm hơn do phải truy cập gián tiếp ( `DS -> sv`). Vậy, đáp án đúng nhất là C.

Câu hỏi liên quan