Trắc nghiệm Cánh diều Tin học 11 KHMT Giải Tin học 11 định hướng Khoa học máy tính cánh diều bài 15 Cấu trúc dữ liệu danh sách liên kết và ứng dụng

Trắc nghiệm Cánh diều Tin học 11 KHMT Giải Tin học 11 định hướng Khoa học máy tính cánh diều bài 15 Cấu trúc dữ liệu danh sách liên kết và ứng dụng

1. Việc chèn một nút mới vào giữa danh sách liên kết đơn đòi hỏi bao nhiêu thao tác cập nhật con trỏ (pointer updates) trong trường hợp tốt nhất (biết trước nút cần chèn vào sau)?
2. Cấu trúc dữ liệu double-ended queue (deque) có thể được triển khai hiệu quả bằng loại danh sách liên kết nào?
3. Trong một danh sách liên kết kép, nếu ta có con trỏ đến một nút bất kỳ và muốn xóa nút đó, ta cần cập nhật bao nhiêu con trỏ?
4. Danh sách liên kết được ứng dụng để triển khai cấu trúc dữ liệu nào sau đây một cách hiệu quả?
5. Trong một danh sách liên kết đơn, nếu head là con trỏ đến nút đầu tiên và current là con trỏ duyệt danh sách, biểu thức `current = current.next` thực hiện hành động gì?
6. Cho một danh sách liên kết đơn với các nút chứa giá trị lần lượt là 10 -> 20 -> 30 -> 40. Nếu ta muốn chèn nút chứa giá trị 25 vào sau nút 20, thao tác nào là cần thiết?
7. Khi thực hiện xóa nút chứa giá trị 30 khỏi danh sách liên kết đơn 10 -> 20 -> 30 -> 40, thao tác nào là chính xác?
8. Khi duyệt một danh sách liên kết đơn để tìm kiếm một giá trị cụ thể, nếu giá trị đó không tồn tại trong danh sách, thuật toán sẽ kết thúc như thế nào?
9. Để xóa phần tử đầu tiên của một danh sách liên kết đơn, điều cần làm sau khi tìm thấy nút đầu tiên là gì?
10. Một danh sách liên kết vòng (circular linked list) khác với danh sách liên kết đơn ở điểm nào?
11. Nhược điểm chính của danh sách liên kết đơn khi cần truy cập một phần tử ở vị trí thứ k là gì?
12. Tại sao việc tìm kiếm một phần tử cụ thể trong danh sách liên kết thường kém hiệu quả hơn so với mảng?
13. Nếu ta cần một cấu trúc dữ liệu cho phép thêm và xóa hiệu quả ở cả hai đầu, danh sách liên kết nào là lựa chọn tốt nhất?
14. Khi triển khai danh sách liên kết, một head pointer (con trỏ đầu) có vai trò quan trọng như thế nào?
15. Nếu một danh sách liên kết đơn có một vòng lặp (ví dụ: nút cuối cùng trỏ ngược lại một nút ở giữa), hậu quả phổ biến nhất đối với thuật toán duyệt thông thường là gì?
16. Nếu một danh sách liên kết được biểu diễn bằng các nút, mỗi nút chứa một giá trị và một con trỏ, thì con trỏ này thường dùng để chỉ đến đâu?
17. Giả sử ta có một danh sách liên kết đơn và muốn chèn một nút mới chứa giá trị X vào vị trí cuối cùng. Việc này yêu cầu ta phải thực hiện thao tác nào?
18. Trong danh sách liên kết kép (doubly linked list), mỗi nút ngoài dữ liệu còn chứa những thành phần gì?
19. Trong việc quản lý bộ nhớ động, khi một nút trong danh sách liên kết không còn được sử dụng nữa, nó cần được giải phóng để tránh điều gì?
20. Trong thuật toán duyệt danh sách liên kết, để đảm bảo thuật toán dừng lại, điều kiện dừng phổ biến nhất là gì?
21. So với mảng, việc sử dụng danh sách liên kết có thể gây ra vấn đề gì về mặt hiệu quả sử dụng bộ nhớ?
22. Cấu trúc dữ liệu danh sách liên kết nào phù hợp nhất để triển khai hàng đợi (queue) với các thao tác enqueue (thêm vào cuối) và dequeue (lấy ra từ đầu) hiệu quả?
23. Ưu điểm chính của danh sách liên kết so với mảng truyền thống là gì khi thực hiện các thao tác thêm hoặc xóa phần tử ở giữa danh sách?
24. Trong cấu trúc dữ liệu danh sách liên kết, mỗi nút (node) thường chứa những thành phần cơ bản nào?
25. Khi thêm một nút mới vào đầu danh sách liên kết đơn, thao tác đầu tiên cần thực hiện là gì?