Trắc nghiệm Cấu trúc dữ liệu và giải thuật
Trắc nghiệm Cấu trúc dữ liệu và giải thuật chương 7
Lưu ý và Miễn trừ trách nhiệm:Các câu hỏi và đáp án trong bộ trắc nghiệm này được xây dựng với mục đích hỗ trợ ôn luyện kiến thức và tham khảo. Nội dung này không phản ánh tài liệu chính thức, đề thi chuẩn hay bài kiểm tra chứng chỉ từ bất kỳ tổ chức giáo dục hoặc cơ quan cấp chứng chỉ chuyên ngành nào. Admin không chịu trách nhiệm về độ chính xác tuyệt đối của thông tin cũng như mọi quyết định bạn đưa ra dựa trên kết quả của các bài trắc nghiệm.
Chào bạn, hãy cùng bắt đầu với bộ Trắc nghiệm Cấu trúc dữ liệu và giải thuật chương 7. Bạn sẽ được thử sức với nhiều câu hỏi chọn lọc, phù hợp cho việc ôn luyện. Hãy lựa chọn phần trắc nghiệm phù hợp bên dưới để bắt đầu hành trình học tập của bạn. Chúc bạn có trải nghiệm làm bài thú vị và đạt kết quả như mong đợi!
1. Trong một heap cực đại (max heap), giá trị của một nút luôn như thế nào so với giá trị của các nút con của nó?
2. Ứng dụng thực tế nào sau đây sử dụng cấu trúc dữ liệu cây?
3. Cho một cây nhị phân đầy đủ (full binary tree) với chiều cao h, số lượng nút tối đa mà cây có thể chứa là bao nhiêu?
4. Cho một heap nhị phân chứa n phần tử, độ phức tạp thời gian để xây dựng heap từ một mảng không có thứ tự là bao nhiêu?
5. Khi nào thì cây đỏ-đen được ưa chuộng hơn cây AVL?
6. Trong các cấu trúc dữ liệu sau, cấu trúc nào thường được sử dụng để cài đặt hàng đợi ưu tiên?
7. Trong một cây B, bậc của cây (order) xác định điều gì?
8. Ưu điểm chính của việc sử dụng cây B+ so với cây B là gì?
9. Cấu trúc dữ liệu nào sau đây thích hợp nhất để cài đặt một hệ thống gợi ý từ (autocomplete)?
10. Độ phức tạp thời gian tốt nhất để tìm kiếm một phần tử trong một cây nhị phân tìm kiếm cân bằng là bao nhiêu?
11. Ứng dụng nào sau đây không phù hợp với cây tìm kiếm nhị phân?
12. Thuật toán nào sau đây sử dụng cây để tìm đường đi ngắn nhất từ một nút nguồn đến tất cả các nút khác trong một đồ thị có trọng số không âm?
13. Trong cây B, các khóa trong một nút được sắp xếp như thế nào?
14. Khi nào nên sử dụng cây khung nhỏ nhất (Minimum Spanning Tree) trong bài toán thực tế?
15. Độ phức tạp thời gian trung bình để chèn một phần tử vào cây AVL là bao nhiêu?
16. Trong cây tìm kiếm nhị phân, thao tác nào sau đây có độ phức tạp thời gian O(1)?
17. Trong một cây đỏ-đen (red-black tree), thuộc tính nào sau đây luôn đúng?
18. Trong một cây AVL, phép quay kép (double rotation) được sử dụng khi nào?
19. Thuật toán nào sau đây thường được sử dụng để duyệt cây theo chiều rộng (Breadth-First Traversal)?
20. Ứng dụng nào sau đây sử dụng cây khung nhỏ nhất (Minimum Spanning Tree)?
21. Cây nào sau đây đảm bảo rằng độ cao của cây luôn là O(log n), với n là số nút?
22. Trong cấu trúc dữ liệu Trie (cây tiền tố), mục đích chính của việc sử dụng nó là gì?
23. Trong một cây quyết định (decision tree), mỗi nút lá đại diện cho điều gì?
24. Sự khác biệt chính giữa cây B và cây B+ là gì?
25. Trong thuật toán Prim để tìm cây khung nhỏ nhất, cấu trúc dữ liệu nào thường được sử dụng để lưu trữ các cạnh có thể thêm vào cây?
26. Trong cây AVL, khi nào cần thực hiện phép quay?
27. Thao tác nào sau đây không phải là một thao tác cơ bản trên heap?
28. Trong cây quyết định, việc tỉa cây (pruning) nhằm mục đích gì?
29. Heap nhị phân (binary heap) thường được biểu diễn bằng cấu trúc dữ liệu nào?
30. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn mối quan hệ cha-con trong một gia đình?
31. Trong thuật toán Heap Sort, độ phức tạp thời gian để sắp xếp một mảng sau khi đã xây dựng heap là bao nhiêu?
32. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
33. Thuật toán nào sau đây thường được sử dụng để tìm kiếm một đường đi trong một mê cung?
34. Thuật toán tìm kiếm nào sau đây yêu cầu dữ liệu phải được sắp xếp trước?
35. Cho một mảng đã được sắp xếp, thuật toán nào sau đây sẽ tìm kiếm một phần tử nhanh nhất?
36. Độ phức tạp thời gian xấu nhất của thuật toán Quick Sort là bao nhiêu?
37. Trong bảng băm (hash table), kỹ thuật nào sau đây được sử dụng để giải quyết xung đột (collision)?
38. Cấu trúc dữ liệu nào sau đây phù hợp nhất để quản lý danh sách các nhiệm vụ cần thực hiện theo thứ tự ưu tiên?
39. 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ụ: ‘(){}[]’ là hợp lệ, còn ‘([)]’ là không hợp lệ)?
40. 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 đỉnh trong một đồ thị có trọng số dương?
41. Thuật toán nào sau đây thường được sử dụng để sắp xếp một mảng đã gần như được sắp xếp (ví dụ: chỉ có một vài phần tử nằm sai vị trí)?
42. Cấu trúc dữ liệu nào sau đây cho phép truy cập ngẫu nhiên đến các phần tử?
43. Trong cây nhị phân tìm kiếm (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)?
44. Độ phức tạp thời gian của thao tác chèn một phần tử vào cuối danh sách liên kết đơn (singly linked list) là bao nhiêu nếu không có con trỏ đến phần tử cuối cùng?
45. Trong thuật toán Merge Sort, giai đoạn nào chiếm phần lớn độ phức tạp thời gian?
46. Trong các cấu trúc dữ liệu sau, cấu trúc nào thường được sử dụng để cài đặt hàng đợi ưu tiên?
47. Độ phức tạp thời gian của thao tác xóa một phần tử khỏi đầu danh sách liên kết đơn (singly linked list) là bao nhiêu?
48. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc FIFO (First In, First Out)?
49. Thuật toán nào sau đây là một thuật toán chia để trị (divide and conquer)?
50. Trong thuật toán Heap Sort, độ phức tạp thời gian để xây dựng một heap từ một mảng chưa được sắp xếp là bao nhiêu?
51. Độ phức tạp thời gian tốt nhất của thuật toán Bubble Sort là bao nhiêu?
52. Độ phức tạp thời gian trung bình của thuật toán Quick Sort là bao nhiêu?
53. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn mối quan hệ cha-con trong một tổ chức (ví dụ: sơ đồ tổ chức)?
54. Thuật toán sắp xếp nào sau đây có độ phức tạp thời gian luôn là O(n log n) bất kể dữ liệu đầu vào?
55. Thuật toán nào sau đây thường được sử dụng để tìm cây khung nhỏ nhất (minimum spanning tree) trong một đồ thị?
56. Độ 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à bao nhiêu nếu các phần tử được phân bố đều?
57. Trong bảng băm (hash table), kỹ thuật nào sau đây sử dụng danh sách liên kết để giải quyết xung đột (collision)?
58. Độ phức tạp không gian của thuật toán Merge Sort là bao nhiêu?
59. Cấu trúc dữ liệu nào sau đây phù hợp nhất để lưu trữ lịch sử các thao tác (ví dụ: lịch sử duyệt web)?
60. Trong cây nhị phân tìm kiếm (Binary Search Tree), thao tác nào sau đây sẽ cho ra các phần tử theo thứ tự tăng dần?
61. Cây nào sau đây đảm bảo thời gian tìm kiếm, chèn và xóa trung bình là O(log n), trong đó n là số nút trong cây?
62. Trong thuật toán sắp xếp HeapSort, thao tác nào sau đây được sử dụng để duy trì tính chất Heap sau khi một phần tử được loại bỏ khỏi Heap?
63. Cấu trúc dữ liệu nào sau đây được sử dụng để cài đặt hàng đợi ưu tiên trong thuật toán Dijkstra?
64. Phương pháp nào sau đây được sử dụng để giải quyết xung đột trong bảng băm?
65. Trong cây đỏ đen (red-black tree), thuộc tính nào sau đây luôn đúng?
66. Độ phức tạp thời gian trung bình của thao tác tìm kiếm trong cây Trie là gì, với m là độ dài của chuỗi cần tìm?
67. Cho một cây nhị phân tìm kiếm, thao tác nào sau đây có độ phức tạp thời gian O(h), với h là chiều cao của cây?
68. Trong cây B, bậc của cây (order) xác định điều gì?
69. Độ phức tạp thời gian tốt nhất để tìm kiếm một phần tử trong một bảng băm (hash table) là bao nhiêu?
70. Khi nào thì việc sử dụng bảng băm (hash table) không phải là lựa chọn tốt nhất?
71. Trong thuật toán Prim, khi một đỉnh mới được thêm vào cây, làm thế nào để cập nhật các cạnh có thể thêm vào?
72. Điều gì xảy ra nếu tất cả các khóa (keys) trong một bảng băm đều băm (hash) đến cùng một vị trí?
73. Trong thuật toán Kruskal, các cạnh được thêm vào cây khung nhỏ nhất theo thứ tự nào?
74. Trong cây đỏ đen, quy tắc nào sau đây bị vi phạm nếu một nút đỏ có một con đỏ?
75. Ưu điểm chính của việc sử dụng đồ thị biểu diễn bằng danh sách kề (adjacency list) so với ma trận kề (adjacency matrix) là gì?
76. Trong thuật toán Kruskal, cấu trúc dữ liệu nào sau đây thường được sử dụng để theo dõi các thành phần liên thông?
77. Khi nào thì việc sử dụng cây AVL tốt hơn so với cây nhị phân tìm kiếm không cân bằng?
78. Cho một đồ thị có 5 đỉnh, số lượng cạnh tối đa có thể có trong đồ thị đó là bao nhiêu (không tính cạnh lặp)?
79. Thuật toán nào sau đây thường được sử dụng để tìm đường đi ngắn nhất từ một nút nguồn đến tất cả các nút khác trong một đồ thị có trọng số không âm?
80. Ứng dụng thực tế nào sau đây sử dụng cây B+?
81. Trong cây AVL, hệ số cân bằng (balance factor) của một nút được định nghĩa là gì?
82. Khi nào thì cần sử dụng một hàm băm (hash function) tốt?
83. Trong cây đỏ đen, màu của một nút lá (nút NULL) luôn là gì?
84. Ứng dụng nào sau đây phù hợp nhất với việc sử dụng cấu trúc dữ liệu đồ thị?
85. Trong thuật toán sắp xếp HeapSort, độ phức tạp thời gian để xây dựng Heap từ một mảng chưa được sắp xếp là bao nhiêu?
86. 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ừ nút nguồn đến các nút khác?
87. Trong thuật toán Prim, điều gì quyết định cạnh nào được thêm vào cây khung nhỏ nhất?
88. Cây khung nhỏ nhất (minimum spanning tree) của một đồ thị liên thông có trọng số là gì?
89. Ưu điểm chính của việc sử dụng cây B+ so với cây B là gì?
90. Ứng dụng nào sau đây là phù hợp nhất cho cấu trúc dữ liệu cây Trie?
91. Khi nào nên sử dụng thuật toán tìm kiếm nội suy (interpolation search) thay vì tìm kiếm nhị phân (binary search)?
92. Trong thuật toán Kruskal để tìm cây khung nhỏ nhất, tiêu chí nào được sử dụng để chọn cạnh tiếp theo?
93. Ưu điểm chính của việc sử dụng cây B so với cây tìm kiếm nhị phân là gì?
94. Trong cấu trúc dữ liệu Heap, thao tác nào sau đây có độ phức tạp thời gian O(1)?
95. Độ phức tạp thời gian xấu nhất của thuật toán sắp xếp trộn (merge sort) là bao nhiêu?
96. Thuật toán nào sau đây được sử dụng để tìm chu trình âm trong một đồ thị có trọng số?
97. Ưu điểm chính của cây tìm kiếm nhị phân tự cân bằng (ví dụ: AVL tree, Red-Black tree) so với cây tìm kiếm nhị phân thông thường là gì?
98. Khi nào nên sử dụng danh sách liên kết đơn thay vì mảng?
99. Cấu trúc dữ liệu nào sau đây phù hợp nhất để kiểm tra xem một biểu thức toán học có cân bằng dấu ngoặc hay không?
100. Thuật toán nào sau đây sử dụng kỹ thuật chia để trị (divide and conquer)?
101. Ứng dụng nào sau đây phù hợp nhất với cấu trúc dữ liệu hàng đợi (Queue)?
102. Trong thuật toán tìm kiếm theo chiều sâu (DFS) trên đồ thị, cấu trúc dữ liệu nào thường được sử dụng để hiện thực?
103. Độ phức tạp thời gian tốt nhất của thuật toán tìm kiếm nhị phân (binary search) là bao nhiêu?
104. Trong cấu trúc dữ liệu đồ thị, ma trận kề (adjacency matrix) được sử dụng để biểu diễn điều gì?
105. Khi nào nên sử dụng cấu trúc dữ liệu Trie?
106. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
107. Trong cây tìm kiếm nhị phân, thao tác nào sau đây có độ phức tạp thời gian O(h), với h là chiều cao của cây?
108. Độ 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à bao nhiêu nếu các khóa được phân bố đều và hàm băm tốt?
109. 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) và hoạt động tốt trong hầu hết các trường hợp?
110. Thuật toán nào sau đây có độ phức tạp thời gian O(V+E) để tìm cây khung nhỏ nhất (minimum spanning tree) trên đồ thị, với V là số đỉnh và E là số cạnh?
111. Ưu điểm của việc sử dụng bảng băm (hash table) so với cây tìm kiếm nhị phân là gì?
112. Khi nào nên sử dụng thuật toán sắp xếp đếm (counting sort)?
113. Trong thuật toán Prim để tìm cây khung nhỏ nhất (minimum spanning tree), cách chọn cạnh tiếp theo để thêm vào cây như thế nào?
114. Độ 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?
115. 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 trong một đồ thị có trọng số không âm?
116. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn mối quan hệ phân cấp (ví dụ: cấu trúc thư mục trong hệ điều hành)?
117. Trong thuật toán tìm kiếm theo chiều rộng (BFS) trên đồ thị, cấu trúc dữ liệu nào được sử dụng để lưu trữ các đỉnh sẽ được duyệt?
118. Khi nào nên sử dụng thuật toán Dijkstra thay vì thuật toán Bellman-Ford để tìm đường đi ngắn nhất trên đồ thị?
119. Cấu trúc dữ liệu nào sau đây phù hợp nhất để biểu diễn quan hệ ‘nhiều-nhiều’ giữa hai thực thể trong cơ sở dữ liệu?
120. Trong thuật toán sắp xếp trộn (merge sort), giai đoạn nào chiếm phần lớn thời gian thực thi?
121. 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)?
122. Trong các cấu trúc dữ liệu cây, cây nào đảm bảo cân bằng (self-balancing) để duy trì hiệu suất tìm kiếm tốt?
123. Cấu trúc dữ liệu nào sau đây thích hợp nhất để biểu diễn mối quan hệ phân cấp (hierarchy)?
124. Trong thuật toán Dijkstra, nếu đồ thị chứa cạnh có trọng số âm, điều gì sẽ xảy ra?
125. Cấu trúc dữ liệu nào sau đây hoạt động theo nguyên tắc LIFO (Last In, First Out)?
126. Cấu trúc dữ liệu nào sau đây thích hợp nhất để lưu trữ lịch sử các thao tác (ví dụ: undo/redo)?
127. Cho một mảng đã được sắp xếp, thuật toán tìm kiếm nào hiệu quả nhất để tìm kiếm một phần tử cụ thể?
128. 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) và thường được sử dụng trong thực tế?
129. Cho một đồ thị có hướng không có chu trình (DAG), thuật toán nào sau đây được sử dụng để sắp xếp các đỉnh theo thứ tự tô pô?
130. Thuật toán nào sau đây thường được sử dụng để tìm chu trình âm trong một đồ thị?
131. Ưu điểm chính của thuật toán Merge Sort so với Quick Sort là gì?
132. Cấu trúc dữ liệu nào sau đây thích hợp nhất để cài đặt một bộ nhớ cache (cache memory)?
133. Cấu trúc dữ liệu nào sau đây thích hợp nhất để kiểm tra xem một biểu thức ngoặc có hợp lệ hay không (ví dụ: ‘(){}[]’)?
134. Trong các cấu trúc dữ liệu sau, cấu trúc nào cho phép truy cập ngẫu nhiên (random access) đến các phần tử?
135. Thuật toán nào sau đây sử dụng phương pháp chia để trị (divide and conquer)?
136. Khi nào nên sử dụng thuật toán Bubble Sort?
137. Cấu trúc dữ liệu nào sau đây thường được sử dụng để cài đặt thuật toán Breadth-First Search (BFS)?
138. Thuật toán nào sau đây có độ phức tạp thời gian O(n) để tìm phần tử lớn nhất trong một mảng chưa sắp xếp?
139. Trong một cây nhị phân tìm kiếm (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)?
140. Ư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ì?
141. Trong một đồ thị, thuật toán nào sau đây được sử dụng để tìm kiếm đường đi theo chiều rộng?
142. Độ phức tạp thời gian tốt nhất của thuật toán Insertion Sort là bao nhiêu?
143. Trong các cấu trúc dữ liệu sau, cấu trúc nào thường được sử dụng để cài đặt hàng đợi ưu tiên (priority queue)?
144. Trong thuật toán Dijkstra tìm đường đi ngắn nhất trên đồ thị có trọng số không âm, 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?
145. Độ phức tạp thời gian trung bình của thuật toán Quick Sort là bao nhiêu?
146. 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ị có trọng số?
147. Thuật toán nào sau đây có độ phức tạp thời gian tốt nhất, trung bình và xấu nhất đều là O(n log n)?
148. Trong thuật toán tìm kiếm nhị phân (Binary Search), điều kiện tiên quyết là gì?
149. Trong một cây, nút nào không có nút con?
150. Cấu trúc dữ liệu nào sau đây cho phép thêm và xóa phần tử ở cả hai đầu?
