150+ câu hỏi trắc nghiệm cấu trúc dữ liệu và giải thuật online có đáp án
⚠️ Đọc lưu ý và miễn trừ trách nhiệm trước khi bắt đầu: Các câu hỏi và đáp án trong bộ trắc nghiệm này chỉ mang tính chất tham khảo, hỗ trợ học tập và ôn luyện. Đây KHÔNG PHẢI là đề thi chính thức, không đại diện cho bất kỳ tài liệu chuẩn hóa hay kiểm tra chứng chỉ nào từ các cơ quan giáo dục hay tổ chức cấp chứng chỉ chuyên môn. Website không chịu bất kỳ trách nhiệm nào liên quan đến độ chính xác của nội dung hoặc các quyết định được đưa ra dựa trên kết quả làm bài trắc nghiệm.
Bạn đã sẵn sàng bắt đầu với bộ 150+ câu hỏi trắc nghiệm cấu trúc dữ liệu và giải thuật online có đáp án. Bộ câu hỏi này được xây dựng để giúp bạn ôn luyện kiến thức một cách chủ động và hiệu quả. Hãy chọn một bộ câu hỏi bên dưới để bắt đầu ngay. Chúc bạn làm bài hiệu quả và tích lũy thêm nhiều kiến thức!
1. Trong ngữ cảnh của cấu trúc dữ liệu đồ thị, thuật ngữ ‘bậc của một đỉnh’ (degree of a vertex) đề cập đến điều gì?
2. Thuật toán nào sau đây là một ví dụ của thuật toán ‘chia để trị’ (divide and conquer)?
3. Độ phức tạp không gian của thuật toán sắp xếp trộn (Merge Sort) là bao nhiêu?
4. Độ phức tạp thời gian để chèn một phần tử vào đầu một danh sách liên kết đơn (singly linked list) là bao nhiêu?
5. Cấu trúc dữ liệu nào phù hợp nhất để biểu diễn mối quan hệ ‘cha-con’ trong một hệ thống phân cấp?
6. Phương pháp tiếp cận lập trình nào thường được sử dụng để giải quyết các bài toán tối ưu hóa, bằng cách chia bài toán thành các bài toán con và lưu trữ kết quả của các bài toán con này để tránh tính toán lại?
7. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc LIFO (Last In, First Out)?
8. Cấu trúc dữ liệu nào thường được sử dụng để triển khai hàng đợi ưu tiên (priority queue)?
9. Thuật toán nào sau đây thường được sử dụng để tìm đường đi ngắn nhất trong một đồ thị có trọng số dương?
10. Kiểu dữ liệu trừu tượng (Abstract Data Type – ADT) nào sau đây tuân theo nguyên tắc ‘First In, First Out’ (FIFO)?
11. Cấu trúc dữ liệu nào sử dụng con trỏ để liên kết các phần tử?
12. Phương pháp nào sau đây thường được sử dụng để tìm kiếm một mẫu (pattern) trong một chuỗi văn bản lớn?
13. Độ phức tạp thời gian tốt nhất của thuật toán sắp xếp chèn (Insertion Sort) là bao nhiêu?
14. Trong thuật toán Dijkstra, cấu trúc dữ liệu nào thường được sử dụng để lưu trữ khoảng cách từ đỉnh nguồn đến các đỉnh khác?
15. Sắp xếp tô pô (Topological Sort) được sử dụng cho loại đồ thị nào?
16. Độ phức tạp thời gian của thao tác tìm kiếm trong một cây tìm kiếm nhị phân cân bằng (balanced binary search tree) là bao nhiêu?
17. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai chức năng ‘undo’ trong các ứng dụng?
18. Thuật toán nào sau đây được sử dụng để nén dữ liệu mà không làm mất thông tin?
19. Kỹ thuật nào sau đây được sử dụng để giải quyết xung đột trong bảng băm (hash table)?
20. Trong một đồ thị, một chu trình Euler là gì?
21. Độ phức tạp thời gian tốt nhất cho tìm kiếm một phần tử trong một mảng đã được sắp xếp bằng thuật toán tìm kiếm nhị phân là bao nhiêu?
22. Cấu trúc dữ liệu nào cho phép truy cập ngẫu nhiên (random access) đến các phần tử?
23. Thuật toán tìm kiếm nào yêu cầu dữ liệu phải được sắp xếp trước?
24. Thuật toán duyệt đồ thị nào sử dụng hàng đợi (queue) để lưu trữ các đỉnh cần thăm?
25. Độ phức tạp thời gian trung bình của thuật toán sắp xếp nhanh (Quick Sort) là bao nhiêu?
26. Trong một cây tìm kiếm nhị phân (Binary Search Tree), thuộc tính nào sau đây luôn đúng?
27. Trong cây tìm kiếm nhị phân tự cân bằng (self-balancing binary search tree) như cây AVL hoặc cây đỏ-đen, mục đích của việc cân bằng cây là gì?
28. Cấu trúc dữ liệu nào sau đây là một dạng của cây, trong đó mỗi nút có thể có nhiều hơn hai nút con?
29. Thuật toán sắp xếp nào sau đây có hiệu suất tốt nhất trong trường hợp dữ liệu gần như đã được sắp xếp?
30. Thuật toán sắp xếp nào có độ phức tạp thời gian trung bình là O(n log n)?
31. Giải thuật nào sau đây là một thuật toán chia để trị?
32. Cấu trúc dữ liệu nào được sử dụng để triển khai thuật toán Breadth-First Search (BFS)?
33. Trong thuật toán Dijkstra, tập hợp nào được sử dụng để theo dõi các đỉnh đã được xử lý?
34. Thuật toán nào sau đây được sử dụng để tìm cây khung nhỏ nhất (Minimum Spanning Tree) trong một đồ thị?
35. Ưu điểm chính của việc sử dụng cây tìm kiếm B (B-tree) là gì?
36. Khi nào thì nên sử dụng bảng băm (hash table) thay vì cây tìm kiếm?
37. Trong ngữ cảnh của đồ thị, thuật toán nào được sử dụng để tìm đường đi ngắn nhất từ một đỉnh nguồn đến tất cả các đỉnh khác?
38. Độ phức tạp thời gian tốt nhất cho tìm kiếm một phần tử trong một mảng đã sắp xếp sử dụng tìm kiếm nhị phân là gì?
39. Trong thuật toán Bellman-Ford, mục đích chính của việc thực hiện V-1 lần lặp (V là số đỉnh) là gì?
40. Ưu điểm của việc sử dụng hàng đợi ưu tiên (priority queue) là gì?
41. Trong thuật toán sắp xếp nhanh (Quick Sort), kỹ thuật nào được sử dụng để chọn phần tử chốt?
42. Trong thuật toán Kruskal, cấu trúc dữ liệu nào được sử dụng để kiểm tra xem hai đỉnh có thuộc cùng một thành phần liên thông hay không?
43. Độ phức tạp thời gian của thao tác tìm kiếm trong một cây tìm kiếm nhị phân cân bằng (ví dụ: AVL tree, Red-Black tree) là gì?
44. Cấu trúc dữ liệu nào cho phép chèn và xóa các phần tử ở cả đầu và cuối với độ phức tạp thời gian O(1)?
45. Khi nào thì nên sử dụng thuật toán tham lam (Greedy Algorithm)?
46. Thuật toán sắp xếp nào có độ phức tạp thời gian tồi tệ nhất là O(n^2) nhưng thường hoạt động tốt trong thực tế?
47. Khi nào thì nên sử dụng thuật toán tìm kiếm theo chiều rộng (BFS) thay vì tìm kiếm theo chiều sâu (DFS) trong đồ thị?
48. Độ phức tạp thời gian để chèn một phần tử vào đầu một danh sách liên kết đơn là bao nhiêu?
49. Cấu trúc dữ liệu nào thường được sử dụng để triển khai chức năng ‘undo’ trong các ứng dụng?
50. Thuật toán sắp xếp nào có độ phức tạp thời gian trung bình là O(n log n) và thường được sử dụng trong thực tế?
51. 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?
52. Trong thuật toán Heap Sort, cấu trúc dữ liệu nào được sử dụng?
53. Thuật toán nào sau đây thường được sử dụng để nén dữ liệu?
54. Khi nào thì nên sử dụng thuật toán tìm kiếm tuyến tính (Linear Search) thay vì tìm kiếm nhị phân (Binary Search)?
55. Cấu trúc dữ liệu nào cho phép truy cập phần tử đầu và cuối với độ phức tạp thời gian O(1)?
56. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc ‘First In, First Out’ (FIFO)?
57. Ưu điểm chính của việc sử dụng danh sách liên kết so với mảng là gì?
58. Trong một bảng băm (hash table), điều gì xảy ra khi hai khóa khác nhau băm đến cùng một vị trí?
59. Cấu trúc dữ liệu nào phù hợp nhất để kiểm tra xem một dấu ngoặc có hợp lệ không (ví dụ: ‘(){}[]’)?
60. Trong lập trình động (Dynamic Programming), kỹ thuật nào được sử dụng để tránh tính toán lại các bài toán con đã giải?
61. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
62. Ư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ì?
63. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian xấu nhất là O(n^2)?
64. Hàm băm (hash function) tốt cần có thuộc tính nào sau đây?
65. Thuật toán nào sau đây là một thuật toán chia để trị (divide and conquer algorithm)?
66. Thuật toán nào sau đây là một thuật toán tham lam (greedy algorithm) được sử dụng để tìm cây khung nhỏ nhất (minimum spanning tree) trong một đồ thị có trọng số?
67. Trong cây tìm kiếm nhị phân tự cân bằng (self-balancing binary search tree), mục đích của việc cân bằng cây là gì?
68. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian trung bình tốt nhất, nhưng lại không ổn định (unstable)?
69. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn mối quan hệ nhiều-nhiều giữa các thực thể?
70. Độ phức tạp thời gian của thao tác tìm kiếm trong cây tìm kiếm nhị phân cân bằng (ví dụ: AVL tree, Red-Black tree) là bao nhiêu?
71. Thuật toán nào sau đây có thể được sử dụng để tìm chu trình trong một đồ thị có hướng?
72. Thuật toán sắp xếp nào sau đây thường được sử dụng để sắp xếp các mảng lớn vì hiệu suất tốt trong hầu hết các trường hợp?
73. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai thuật toán A* tìm đường đi (A* pathfinding algorithm)?
74. Trong thuật toán duyệt đồ thị theo chiều sâu (DFS), cấu trúc dữ liệu nào sau đây thường được sử dụng để lưu trữ các đỉnh cần duyệt?
75. Trong bảng băm (hash table), kỹ thuật nào sau đây được sử dụng để xử lý xung đột khi hai khóa khác nhau được băm vào cùng một vị trí?
76. Cấu trúc dữ liệu nào sau đây phù hợp nhất để triển khai một bộ nhớ cache (cache memory)?
77. 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ệ hay không (ví dụ: ‘(){}[]’)?
78. Ưu điểm chính của việc sử dụng hàng đợi ưu tiên (priority queue) là gì?
79. 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)?
80. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc FIFO (First In, First Out)?
81. Trong cây tìm kiếm nhị phân (binary search tree), thao tác nào sau đây có độ phức tạp thời gian trung bình là O(log n)?
82. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn quan hệ ‘cha-con’ trong một tổ chức?
83. Độ phức tạp thời gian của thao tác xóa một phần tử khỏi một danh sách liên kết đơn (singly linked list) là bao nhiêu, nếu chúng ta đã có con trỏ đến phần tử đó?
84. Cấu trúc dữ liệu nào sau đây cho phép truy cập các phần tử theo chỉ số (index) với độ phức tạp thời gian O(1)?
85. Độ phức tạp thời gian tốt nhất của thuật toán Insertion Sort là bao nhiêu?
86. Cấu trúc dữ liệu nào sau đây sử dụng con trỏ để liên kết các phần tử?
87. Trong cấu trúc dữ liệu đồ thị (graph), thuật toán nào sau đây được sử dụng để tìm đường đi ngắn nhất từ một đỉnh nguồn đến tất cả các đỉnh khác?
88. Độ phức tạp thời gian của thao tác chèn vào một heap (min-heap hoặc max-heap) là bao nhiêu?
89. Trong thuật toán tìm kiếm nhị phân (binary search), điều kiện tiên quyết nào sau đây phải được đáp ứng để thuật toán hoạt động chính xác?
90. Khi nào nên sử dụng cấu trúc dữ liệu Trie?
91. Thuật toán sắp xếp nào có hiệu suất tốt nhất trong trường hợp dữ liệu gần như đã được sắp xếp?
92. Cấu trúc dữ liệu nào phù hợp nhất để triển khai chức năng ‘undo’ trong một trình soạn thảo văn bản?
93. Thuật toán nào sau đây là một ví dụ của thuật toán tham lam (greedy algorithm)?
94. Cấu trúc dữ liệu nào thường được sử dụng để triển khai hàng đợi ưu tiên (priority queue)?
95. Cấu trúc dữ liệu nào được sử dụng để biểu diễn mối quan hệ ‘cha-con’ phân cấp?
96. Trong một đồ thị có hướng (directed graph), điều gì tạo nên một thành phần liên thông mạnh (strongly connected component)?
97. Trong đồ thị, một chu trình (cycle) là gì?
98. Độ phức tạp không gian của thuật toán sắp xếp trộn (merge sort) là gì?
99. Cây đỏ-đen (red-black tree) là một loại cấu trúc dữ liệu nào?
100. Trong một cây quyết định (decision tree), mục đích của việc cắt tỉa (pruning) là gì?
101. Cấu trúc dữ liệu nào tuân theo nguyên tắc LIFO (Last In, First Out)?
102. Thuật toán nào sau đây được sử dụng để tìm cây khung nhỏ nhất (minimum spanning tree) trong một đồ thị?
103. Độ phức tạp thời gian xấu nhất của thuật toán sắp xếp nhanh (quick sort) là gì?
104. Cấu trúc dữ liệu nào là một tập hợp các nút, mỗi nút trỏ đến các nút khác?
105. Mục đích chính của việc sử dụng cấu trúc dữ liệu là gì?
106. Độ phức tạp thời gian tốt nhất của thuật toán tìm kiếm nhị phân là gì?
107. Trong lập trình động (dynamic programming), kỹ thuật ghi nhớ (memoization) là gì?
108. Trong một hàm đệ quy, điều gì xảy ra nếu không có trường hợp cơ bản (base case)?
109. Sự khác biệt chính giữa mảng (array) và danh sách liên kết (linked list) là gì?
110. Thuật toán nào sau đây là một ví dụ của thuật toán ‘chia để trị’ (divide and conquer)?
111. Trong ngữ cảnh của bảng băm (hash table), ‘collision’ xảy ra khi nào?
112. Cấu trúc dữ liệu nào cho phép chèn và xóa ở cả hai đầu?
113. Cây nào sau đây đảm bảo rằng chiều cao của cây luôn là O(log n), trong đó n là số lượng nút?
114. Trong cây nhị phân tìm kiếm (BST), nút gốc (root node) có đặc điểm gì?
115. Thuật toán nào sau đây thường được sử dụng để tìm đường đi ngắn nhất giữa hai nút trong một đồ thị có trọng số dương?
116. Độ 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) là gì?
117. Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất là O(n)?
118. Thuật toán tìm kiếm theo chiều rộng (BFS) thường được sử dụng để giải quyết vấn đề nào?
119. Thuật toán sắp xếp nào có độ phức tạp thời gian trung bình là O(n log n)?
120. Thuật toán nào sau đây thường được sử dụng để nén dữ liệu?
121. Thuật toán Prim được sử dụng để giải quyết vấn đề gì?
122. Trong cấu trúc dữ liệu cây (Tree), nút nào không có nút con được gọi là gì?
123. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai hàng đợi ưu tiên (Priority Queue)?
124. Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai thuật toán duyệt đồ thị theo chiều rộng (Breadth-First Search)?
125. Độ phức tạp thời gian của thuật toán sắp xếp chèn (Insertion Sort) trong trường hợp xấu nhất là gì?
126. Chức năng của hàm băm (Hash Function) là gì?
127. Khi nào nên sử dụng thuật toán sắp xếp nhanh (Quick Sort) thay vì sắp xếp trộn (Merge Sort)?
128. Sự khác biệt chính giữa hàng đợi (Queue) và ngăn xếp (Stack) là gì?
129. Độ phức tạp thời gian của thao tác tìm kiếm trong bảng băm (Hash Table) trong trường hợp tốt nhất là gì?
130. Độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính (Linear Search) là gì?
131. Thuật toán Kruskal được sử dụng để làm gì?
132. Cây nào sau đây đảm bảo thời gian tìm kiếm, chèn và xóa là O(log n) trong trường hợp xấu nhất?
133. Heap (cấu trúc dữ liệu) là gì?
134. Chức năng nào sau đây KHÔNG phải là một hoạt động cơ bản trên cấu trúc dữ liệu ngăn xếp (Stack)?
135. Thuật toán nào sau đây là một ví dụ của thuật toán chia để trị (Divide and Conquer)?
136. Kỹ thuật ‘memoization’ thường được sử dụng để tối ưu hóa thuật toán nào?
137. Cấu trúc dữ liệu nào sau đây là phi tuyến tính?
138. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc LIFO (Last In, First Out)?
139. Giải thuật Dijkstra được sử dụng để giải quyết vấn đề gì?
140. Điều gì xảy ra nếu bạn cố gắng ‘pop’ một phần tử từ một ngăn xếp (Stack) trống?
141. Độ phức tạp không gian của thuật toán sắp xếp trộn (Merge Sort) là gì?
142. Thuật toán sắp xếp nào có độ phức tạp thời gian trung bình là O(n log n)?
143. Độ phức tạp thời gian tốt nhất của thuật toán tìm kiếm nhị phân là gì?
144. Khi nào nên sử dụng danh sách liên kết đơn thay vì danh sách liên kết đôi?
145. Trong cây nhị phân hoàn chỉnh (Complete Binary Tree), số lượng nút ở mức ‘l’ là bao nhiêu?
146. Cây tìm kiếm nhị phân (Binary Search Tree) có đặc điểm gì?
147. Ưu điểm chính của việc sử dụng bảng băm (hash table) so với cây tìm kiếm là gì?
148. Thuật toán tìm kiếm nào yêu cầu dữ liệu phải được sắp xếp trước?
149. Phương pháp nào sau đây thường được sử dụng để giải quyết xung đột trong bảng băm (Hash Table)?
150. Ưu điểm chính của việc sử dụng danh sách liên kết so với mảng là gì?
