[Cánh diều] Trắc nghiệm 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

[Cánh diều] Trắc nghiệm 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. Trong danh sách liên kết đơn, mỗi nút (node) chứa hai thành phần chính là gì?
2. Thao tác xóa một nút khỏi danh sách liên kết đơn yêu cầu phải biết con trỏ đến nút nào?
3. Đâu là đặc điểm nổi bật nhất của danh sách liên kết so với mảng tĩnh (array) về khả năng thay đổi kích thước?
4. Trong danh sách liên kết đơn, nếu muốn xóa nút đầu tiên (head), điều gì cần được thực hiện sau khi cập nhật con trỏ `head`?
5. Đâu là một ứng dụng phổ biến của danh sách liên kết trong thực tế?
6. Nếu `prev` là con trỏ trỏ đến nút đứng trước nút `current` trong danh sách liên kết đơn, và ta muốn xóa `current`, thì thao tác cập nhật con trỏ của `prev` là gì?
7. Khi thực hiện thao tác thêm một nút mới vào cuối danh sách liên kết đơn (không có con trỏ `tail`), bạn cần làm gì trước tiên?
8. Tại sao việc chèn hoặc xóa phần tử ở cuối danh sách liên kết đơn lại có độ phức tạp O(n) nếu không có con trỏ `tail`?
9. Danh sách liên kết đôi (Doubly Linked List) có sự khác biệt cơ bản nào so với danh sách liên kết đơn?
10. Nếu một danh sách liên kết đơn chỉ có một nút duy nhất, thì con trỏ `head` và con trỏ `next` của nút đó sẽ có mối quan hệ như thế nào?
11. Đâu là một nhược điểm chính của danh sách liên kết so với mảng?
12. Nếu `current` là con trỏ trỏ đến nút hiện tại trong quá trình duyệt danh sách liên kết đơn, và ta muốn di chuyển sang nút tiếp theo, ta sẽ thực hiện phép toán nào?
13. Khi duyệt một danh sách liên kết đơn, nếu gặp phải trường hợp con trỏ `next` của một nút là NULL, điều đó có nghĩa là gì?
14. Khi thực hiện thao tác tìm kiếm một phần tử trong danh sách liên kết, điều kiện dừng của vòng lặp tìm kiếm thường là gì?
15. Khi xem xét hiệu quả của việc tìm kiếm một phần tử trong danh sách liên kết, trường hợp xấu nhất xảy ra khi nào?
16. Nếu bạn cần một cấu trúc dữ liệu cho phép chèn và xóa phần tử ở cả hai đầu một cách hiệu quả (O(1)), bạn nên chọn loại danh sách liên kết nào?
17. Trong một bài toán cần lưu trữ một danh sách các sinh viên, trong đó thường xuyên thêm mới và xóa bỏ sinh viên khỏi danh sách, cấu trúc dữ liệu nào sau đây là phù hợp nhất về hiệu quả thay đổi kích thước?
18. Trong danh sách liên kết vòng (Circular Linked List), nút cuối cùng sẽ trỏ đến đâu?
19. Ưu điểm của danh sách liên kết vòng so với danh sách liên kết đơn thông thường là gì?
20. Nếu `head` là con trỏ trỏ đến nút đầu tiên của danh sách liên kết đơn, và `newNode` là con trỏ trỏ đến nút mới cần chèn vào đầu danh sách, thì thao tác nào sau đây là đúng để chèn `newNode` vào đầu?
21. Trong lập trình hướng đối tượng, một class định nghĩa cấu trúc của một nút trong danh sách liên kết sẽ chứa các thuộc tính (attributes) nào?
22. Ưu điểm của danh sách liên kết đôi so với danh sách liên kết đơn khi thực hiện thao tác xóa một nút là gì?
23. Khi thực hiện thao tác chèn một nút mới vào đầu danh sách liên kết đơn, bước đầu tiên cần làm là gì?
24. Trong các thao tác với danh sách liên kết, thao tác nào thường có độ phức tạp thời gian cao nhất (O(n))?
25. Trong việc triển khai thuật toán sắp xếp như Bubble Sort hoặc Insertion Sort bằng cách sử dụng danh sách liên kết, thao tác nào thường là chậm nhất?