Đề thi, bài tập trắc nghiệm online Cấu trúc dữ liệu và giải thuật – Đề 12

Đề 12 - Bài tập, đề thi trắc nghiệm online Cấu trúc dữ liệu và giải thuật

1. Trong cây nhị phân tìm kiếm (Binary Search Tree - BST), các nút có khóa nhỏ hơn khóa của nút gốc được đặt ở đâu?
2. Thuật toán tìm kiếm nào hiệu quả nhất trên một mảng đã được sắp xếp?
3. Đệ quy đuôi (tail recursion) là gì và tại sao nó quan trọng?
4. Phương pháp tiếp cận 'chia để trị' (Divide and Conquer) được sử dụng trong thuật toán sắp xếp nào sau đây?
5. Cấu trúc dữ liệu nào phù hợp nhất để biểu diễn mối quan hệ phân cấp, ví dụ như cây gia phả hoặc cấu trúc thư mục trong hệ điều hành?
6. Kỹ thuật 'ghi nhớ' (memoization) trong lập trình động (Dynamic Programming) được sử dụng để làm gì?
7. Khi nào thì nên sử dụng thuật toán tìm kiếm theo chiều sâu (Depth-First Search - DFS) thay vì tìm kiếm theo chiều rộng (Breadth-First Search - BFS) trong đồ thị?
8. Cấu trúc dữ liệu nào sau đây phù hợp nhất để kiểm tra xem một chuỗi ngoặc có hợp lệ (ví dụ: '()[]{}' là hợp lệ, '([)]' là không hợp lệ) hay không?
9. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc FIFO (First In, First Out)?
10. Ưu điểm chính của việc sử dụng danh sách liên kết (Linked List) so với mảng (Array) là gì?
11. Thuật toán nào sau đây KHÔNG thuộc nhóm thuật toán sắp xếp so sánh (comparison sort)?
12. Độ phức tạp thời gian trung bình của thao tác tìm kiếm trong bảng băm (Hash Table) với phương pháp xử lý xung đột tốt (ví dụ: separate chaining) là bao nhiêu?
13. Kiểu dữ liệu trừu tượng (Abstract Data Type - ADT) nào mô tả một tập hợp các phần tử mà việc thêm và loại bỏ phần tử chỉ có thể thực hiện ở một đầu?
14. Trong cấu trúc dữ liệu, thuật ngữ LIFO là viết tắt của nguyên tắc hoạt động nào?
15. Thuật toán Kruskal và Prim được sử dụng để giải quyết bài toán nào trong lý thuyết đồ thị?
16. Hoạt động nào sau đây KHÔNG phải là thao tác cơ bản trên Stack?
17. Trong cấu trúc dữ liệu đồ thị (Graph), thuật ngữ 'đỉnh' (vertex) còn được gọi là gì?
18. Trong ngữ cảnh của thuật toán, 'tham lam' (greedy) nghĩa là gì?
19. Trong bảng băm (Hash Table), 'xung đột' (collision) xảy ra khi nào?
20. Ứng dụng phổ biến nhất của hàng đợi ưu tiên (Priority Queue) là gì?
21. Trong ngôn ngữ lập trình, 'con trỏ' (pointer) có vai trò gì liên quan đến cấu trúc dữ liệu?
22. Ưu điểm chính của việc sử dụng cây AVL (AVL Tree) so với cây nhị phân tìm kiếm thông thường là gì?
23. Độ phức tạp thời gian tốt nhất (best-case time complexity) của thuật toán sắp xếp chèn (Insertion Sort) là bao nhiêu?
24. Trong thuật toán Dijkstra, mục đích chính là tìm kiếm cái gì?
25. Trong cây đỏ-đen (Red-Black Tree), quy tắc nào sau đây KHÔNG đúng?
26. Độ phức tạp không gian (space complexity) của thuật toán sắp xếp trộn (Merge Sort) chủ yếu đến từ đâu?
27. Phương pháp lập trình 'đệ quy' (recursion) hoạt động dựa trên nguyên tắc nào?
28. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình là O(n log n)?
29. Trong đồ thị vô hướng (undirected graph), bậc của một đỉnh (degree of a vertex) là gì?
30. Trong thuật toán sắp xếp nhanh (Quick Sort), việc chọn phần tử chốt (pivot) ảnh hưởng như thế nào đến hiệu suất của thuật toán?