Phát triển Phần mềm và Dữ liệu Quiz
200+ câu hỏi trắc nghiệm Cấu trúc dữ liệu và giải thuật (Có đáp án)
⚠️ Vui lòng đọc kỹ phần lưu ý và tuyên bố miễn trừ trách nhiệm trước khi bắt đầu: Bộ câu hỏi và đáp án trong bài trắc nghiệm này chỉ mang tính chất tham khảo, nhằm hỗ trợ quá trình học tập và ôn luyện. Đây KHÔNG PHẢI là đề thi chính thức và không đại diện cho bất kỳ tài liệu chuẩn hóa hay kỳ thi cấp chứng chỉ nào từ các cơ quan giáo dục hoặc tổ chức cấp chứng chỉ chuyên ngành. Website không chịu trách nhiệm về tính chính xác của nội dung cũng như bất kỳ quyết định nào được đưa ra dựa trên kết quả từ bài trắc nghiệm.
Đồng hành cùng bạn trong bộ 200+ câu hỏi trắc nghiệm Cấu trúc dữ liệu và giải thuật (Có đáp án). Bạn sẽ tham gia vào chuỗi câu hỏi được chọn lọc cẩn thận, giúp bạn củng cố lại kiến thức đã học. Vui lòng nhấn vào phần câu hỏi bên dưới để khởi động quá trình ôn tập của mình. Chúc bạn trải nghiệm làm bài thật vui và học thêm được nhiều điều thú vị!.
1. Độ phức tạp thời gian của thuật toán sắp xếp Heap Sort là bao nhiêu trong mọi trường hợp?
2. Trong thuật toán BFS (Breadth-First Search) để duyệt đồ thị, cấu trúc dữ liệu nào được sử dụng để lưu trữ các đỉnh cần được thăm kế tiếp?
3. Cấu trúc dữ liệu nào được sử dụng để triển khai thuật toán Floyd-Warshall, nhằm tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh trong một đồ thị có trọng số?
4. Trong một cây nhị phân, nếu một nút có hai con, thì nút đó được gọi là gì?
5. Độ phức tạp thời gian của thuật toán sắp xếp Merge Sort là bao nhiêu trong mọi trường hợp?
6. Khi gặp xung đột băm (hash collision) trong bảng băm, phương pháp nào sau đây thường được sử dụng để giải quyết?
7. Cấu trúc dữ liệu nào cho phép truy cập phần tử cuối cùng được thêm vào một cách hiệu quả nhất?
8. Cây nhị phân đầy đủ (Full Binary Tree) là cây mà mỗi nút có bao nhiêu con?
9. Cây nhị phân hoàn chỉnh (Complete Binary Tree) là cây mà tất cả các mức đều được điền đầy, ngoại trừ có thể là mức cuối cùng, và các nút ở mức cuối cùng được điền từ trái sang phải. Điều này có ý nghĩa gì đối với việc triển khai Heap?
10. Cấu trúc dữ liệu nào được sử dụng để triển khai hàm băm (hashing) nhằm mục đích lưu trữ và truy xuất dữ liệu nhanh chóng dựa trên khóa?
11. Độ phức tạp không gian (space complexity) của thuật toán QuickSort khi sử dụng đệ quy là bao nhiêu trong trường hợp tốt nhất?
12. Cấu trúc dữ liệu nào được sử dụng để mô tả một chuỗi các thao tác có thể được hoàn tác (undo) hoặc thực hiện lại (redo)?
13. Cấu trúc dữ liệu nào phù hợp nhất để biểu diễn mối quan hệ giữa các thực thể, nơi mỗi thực thể có thể có nhiều mối liên kết với các thực thể khác, và thứ tự các liên kết không quan trọng?
14. Độ phức tạp thời gian của thuật toán sắp xếp Bubble Sort là bao nhiêu trong trường hợp tốt nhất (dữ liệu đã sắp xếp)?
15. Độ phức tạp thời gian của thuật toán sắp xếp QuickSort trong trường hợp xấu nhất là bao nhiêu?
16. Cây nhị phân tìm kiếm có thể được cân bằng hóa bằng cách sử dụng thuật toán nào để duy trì độ phức tạp O(log n) cho các phép toán?
17. Cây nhị phân cân bằng (balanced binary tree) như AVL tree hay Red-Black tree được sử dụng để đảm bảo điều gì cho các phép toán tìm kiếm, thêm, xóa?
18. Độ phức tạp thời gian của thuật toán sắp xếp Counting Sort khi phạm vi các giá trị là K và số lượng phần tử là n là bao nhiêu?
19. Trong thuật toán DFS (Depth-First Search) để duyệt đồ thị, cấu trúc dữ liệu nào được sử dụng để lưu trữ các đỉnh cần được thăm kế tiếp?
20. Trong thuật toán sắp xếp Insertion Sort, mỗi phần tử được chèn vào vị trí đúng của nó trong phần nào của mảng?
21. Khi duyệt cây theo thứ tự trước (pre-order traversal), thứ tự các nút được truy cập là gì?
22. Cấu trúc dữ liệu nào được sử dụng để biểu diễn một chuỗi các phép tính mà mỗi phép tính phụ thuộc vào kết quả của phép tính trước đó, và kết quả cuối cùng là một giá trị duy nhất?
23. Độ phức tạp thời gian của thuật toán sắp xếp Selection Sort là bao nhiêu trong mọi trường hợp (tốt nhất, trung bình, xấu nhất)?
24. Trong đồ thị, thuật toán Dijkstra đượ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, với điều kiện gì về trọng số của các cạnh?
25. Độ phức tạp thời gian cho phép toán ‘pop’ (lấy ra phần tử) trên một ngăn xếp được triển khai bằng danh sách liên kết là bao nhiêu?
26. Cây tìm kiếm nhị phân (Binary Search Tree – BST) có đặc điểm gì nổi bật về thứ tự các phần tử?
27. Độ phức tạp thời gian của thuật toán sắp xếp Radix Sort phụ thuộc vào số chữ số (D) trong số lớn nhất và số lượng phần tử (n). Độ phức tạp thường là:
28. Cấu trúc dữ liệu nào được sử dụng để quản lý các tiến trình đang chờ CPU theo thứ tự ưu tiên, nơi tiến trình có độ ưu tiên cao nhất sẽ được xử lý trước?
29. Trong duyệt cây theo thứ tự giữa (in-order traversal), thứ tự các nút được truy cập là gì đối với một cây tìm kiếm nhị phân?
30. Trong thuật toán sắp xếp Merge Sort, quá trình kết hợp (merge) hai mảng con đã sắp xếp có độ phức tạp thời gian là bao nhiêu?
31. Trong các cấu trúc dữ liệu sau, cấu trúc nào được sử dụng để triển khai hàng đợi ưu tiên (priority queue) hiệu quả nhất về mặt thời gian cho các phép toán thêm và xóa phần tử có độ ưu tiên cao nhất?
32. Độ phức tạp thời gian của thuật toán sắp xếp Insertion Sort là bao nhiêu trong trường hợp xấu nhất?
33. Khi duyệt cây theo thứ tự sau (post-order traversal), thứ tự các nút được truy cập là gì?
34. Cấu trúc dữ liệu nào phù hợp nhất để lưu trữ một tập hợp các phần tử duy nhất, không có thứ tự và hỗ trợ các phép toán như thêm, xóa, kiểm tra sự tồn tại một cách hiệu quả?
35. Độ phức tạp thời gian của thuật toán sắp xếp Insertion Sort trong trường hợp tốt nhất (dữ liệu đã sắp xếp) là bao nhiêu?
36. Cấu trúc dữ liệu nào được sử dụng để lưu trữ các hàm đang chờ được thực thi theo thứ tự FIFO (First-In, First-Out)?
37. Trong thuật toán tìm kiếm nhị phân (Binary Search), điều kiện tiên quyết để thuật toán hoạt động hiệu quả là gì?
38. Độ phức tạp thời gian của thuật toán sắp xếp Shell Sort phụ thuộc vào chuỗi các bước nhảy (gap sequence) được sử dụng, nhưng nó thường hiệu quả hơn Insertion Sort và QuickSort trong một số trường hợp. Trong các trường hợp thông thường, nó có độ phức tạp gần với:
39. Cấu trúc dữ liệu nào là phù hợp nhất để lưu trữ các phần tử theo thứ tự, cho phép thêm và xóa phần tử ở cả hai đầu (đầu và cuối) một cách hiệu quả?
40. Trong một đồ thị có hướng, cạnh (u, v) có nghĩa là gì?
41. Cấu trúc dữ liệu nào sau đây phù hợp để quản lý các tác vụ cần được thực thi theo thứ tự ưu tiên?
42. Khi xảy ra va chạm (collision) trong Hash Table, phương pháp ‘mở rộng địa chỉ’ (open addressing) có thể sử dụng kỹ thuật nào sau đây?
43. Độ phức tạp thời gian của thao tác thêm một phần tử vào cuối một danh sách liên kết đơn (Singly Linked List) là bao nhiêu, nếu ta đã có con trỏ đến nút cuối cùng?
44. Khi phân tích độ phức tạp thời gian của một thuật toán, ký hiệu ‘O’ (Big O) biểu thị điều gì?
45. Cấu trúc dữ liệu nào cho phép truy cập phần tử dựa trên khóa (key) mà không cần sắp xếp trước?
46. Độ phức tạp thời gian của việc xóa một phần tử khỏi đỉnh của một ngăn xếp (Stack) là bao nhiêu?
47. Cây nhị phân cân bằng (Balanced Binary Tree) giúp cải thiện hiệu suất của các thao tác như tìm kiếm, chèn và xóa bằng cách nào?
48. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân (Binary Search) trên một mảng đã sắp xếp là bao nhiêu?
49. Cấu trúc dữ liệu nào sau đây cung cấp khả năng truy cập các phần tử theo thứ tự tăng dần hoặc giảm dần một cách hiệu quả?
50. Cây nhị phân tìm kiếm (Binary Search Tree – BST) có đặc điểm gì về thứ tự các nút?
51. Cấu trúc dữ liệu nào là lựa chọn tốt nhất để lưu trữ một tập hợp các phần tử duy nhất, không cho phép trùng lặp?
52. Độ phức tạp thời gian của thao tác xóa một phần tử từ một danh sách liên kết đơn (Singly Linked List), khi ta có con trỏ đến nút ngay trước nút cần xóa, là bao nhiêu?
53. Độ phức tạp thời gian của việc tìm kiếm một khóa trong một bảng băm (Hash Table) với phương pháp chuỗi băm (Separate Chaining) và giả định hàm băm phân phối đều các khóa là bao nhiêu?
54. Độ phức tạp thời gian trung bình của thao tác tìm kiếm trong một cây nhị phân tìm kiếm cân bằng (Balanced Binary Search Tree) là bao nhiêu?
55. Cấu trúc dữ liệu nào sau đây cho phép truy cập phần tử theo chỉ số (index) một cách hiệu quả nhất?
56. Độ phức tạp thời gian của việc thêm một phần tử vào đầu một danh sách liên kết đôi (Doubly Linked List) là bao nhiêu?
57. Độ phức tạp thời gian của thuật toán sắp xếp vun đống (Heap Sort) là bao nhiêu?
58. Hash collision trong Hash Table có nghĩa là gì?
59. Trong thuật toán sắp xếp trộn (Merge Sort), quá trình ‘trộn’ (merge) hai mảng con đã sắp xếp hoạt động như thế nào?
60. Khi xem xét độ phức tạp thời gian của một thuật toán đệ quy, phương pháp nào thường được sử dụng để giải quyết?
61. Độ 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 mảng đã được sắp xếp là bao nhiêu?
62. Trong thuật toán sắp xếpInserion Sort, tại sao mỗi lần lặp lại cần so sánh phần tử hiện tại với các phần tử đứng trước nó?
63. Hash Table (Bảng băm) sử dụng hàm băm (hash function) để làm gì?
64. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc FIFO (First-In, First-Out)?
65. Cấu trúc dữ liệu nào thường được sử dụng để triển khai các thuật toán tìm kiếm trên cây, chẳng hạn như duyệt cây theo chiều sâu (DFS)?
66. Độ phức tạp thời gian của thuật toán sắp xếp trộn (Merge Sort) là bao nhiêu trong mọi trường hợp?
67. Trong thuật toán Quick Sort, việc chọn ‘chốt’ (pivot) có ảnh hưởng đến điều gì?
68. Cấu trúc dữ liệu nào hoạt động theo nguyên tắc LIFO (Last-In, First-Out)?
69. Cấu trúc dữ liệu nào sau đây là phù hợp nhất để duyệt qua tất cả các nút của một cây theo thứ tự từ trái sang phải, bắt đầu từ gốc và thăm tất cả các nút ở một mức trước khi chuyển sang mức tiếp theo?
70. Trong thuật toán sắp xếp chọn (Selection Sort), mỗi lần lặp qua mảng sẽ tìm kiếm điều gì?
71. Trong một đồ thị có hướng (Directed Graph), cạnh có hướng biểu thị điều gì?
72. Cấu trúc dữ liệu nào thường được sử dụng để triển khai thuật toán Dijkstra tìm đường đi ngắn nhất?
73. Cấu trúc dữ liệu nào là lựa chọn tốt nhất để biểu diễn một tập hợp các phần tử mà thứ tự truy cập không quan trọng, và hiệu suất cho thao tác thêm, xóa, tìm kiếm là quan trọng?
74. Cấu trúc dữ liệu nào sau đây có thể được triển khai bằng cách sử dụng mảng và con trỏ?
75. Cấu trúc dữ liệu nào phù hợp nhất để biểu diễn mối quan hệ giữa các đối tượng, ví dụ như mạng xã hội?
76. Cấu trúc dữ liệu nào thường được sử dụng để biểu diễn hệ thống phân cấp, ví dụ như cấu trúc thư mục của hệ điều hành?
77. Trong thuật toán sắp xếp nổi bọt (Bubble Sort), mỗi lần lặp qua mảng sẽ đảm bảo điều gì?
78. Trong thuật toán sắp xếp nhanh (Quick Sort), ‘phân hoạch’ (partition) là bước dùng để làm gì?
79. Cấu trúc dữ liệu nào sau đây phù hợp nhất để mô phỏng hoạt động của một máy ảo stack (stack machine)?
80. Trong thuật toán sắp xếp vun đống (Heap Sort), bước ‘vun đống’ (heapify) có vai trò gì?
81. Cây tìm kiếm nhị phân (Binary Search Tree – BST) có đặc điểm gì về cách tổ chức các nút?
82. Khi thực hiện thao tác ‘xóa’ (delete) một phần tử khỏi một cây nhị phân tìm kiếm (BST) có nhiều nút, trường hợp nào sau đây là phức tạp nhất để xử lý?
83. Cấu trúc dữ liệu nào sau đây phù hợp nhất để lưu trữ một tập hợp các phần tử duy nhất, không có thứ tự và cho phép kiểm tra sự tồn tại của một phần tử một cách hiệu quả?
84. Cấu trúc dữ liệu nào sau đây được sử dụng phổ biến để lưu trữ các cặp khóa-giá trị (key-value pairs) và cho phép truy cập nhanh vào giá trị dựa trên khóa?
85. Độ phức tạp thời gian của thuật toán duyệt theo chiều rộng (Breadth-First Search – BFS) trên một đồ thị có V đỉnh và E cạnh là bao nhiêu?
86. Độ phức tạp không gian (space complexity) của thuật toán sắp xếp nổi bọt (bubble sort) khi nó được triển khai trực tiếp (in-place) là bao nhiêu?
87. Độ phức tạp thời gian trung bình (average-case time complexity) của thao tác ‘thêm’, ‘xóa’, ‘tìm kiếm’ trong một bảng băm (hash table) với hàm băm tốt và ít xung đột là bao nhiêu?
88. Trong một cây nhị phân cân bằng (balanced binary tree) như AVL tree hoặc Red-Black tree, độ phức tạp thời gian cho các thao tác chèn, xóa và tìm kiếm là bao nhiêu?
89. Trong các cấu trúc dữ liệu sau đây, cấu trúc nào cho phép truy cập vào phần tử ‘đầu tiên’ (first-in) một cách hiệu quả nhất, thường được sử dụng trong việc quản lý các tác vụ cần xử lý theo thứ tự đến trước được phục vụ trước (FIFO)?
90. Cấu trúc dữ liệu nào sau đây sử dụng các ‘bucket’ (thùng chứa) để lưu trữ các phần tử và sử dụng một ‘hàm băm’ (hash function) để tính toán chỉ mục của bucket cho mỗi phần tử?
91. Trong thuật toán sắp xếp nhanh (quick sort), vị trí của ‘pivot’ sau một lần phân hoạch (partition) có đặc điểm gì?
92. Khi sử dụng phương pháp đệ quy để giải quyết một bài toán, điều gì xảy ra nếu không có điều kiện dừng (base case) hoặc điều kiện dừng không bao giờ được đáp ứng?
93. Khi thực hiện thao tác ‘xóa’ (delete) một phần tử khỏi danh sách liên kết đơn (singly linked list) mà bạn đã có con trỏ trỏ đến phần tử ngay trước phần tử cần xóa, độ phức tạp thời gian của thao tác này là bao nhiêu?
94. Cấu trúc dữ liệu nào sau đây là tốt nhất để triển khai hàng đợi ưu tiên (priority queue), nơi các phần tử được lấy ra dựa trên mức độ ưu tiên của chúng?
95. Cấu trúc dữ liệu nào sau đây có thể được sử dụng để biểu diễn một mạng lưới phức tạp, nơi các nút có thể kết nối với nhau theo nhiều cách khác nhau và không nhất thiết theo một thứ tự phân cấp?
96. Cấu trúc dữ liệu nào sử dụng nguyên tắc LIFO (Last-In, First-Out), nghĩa là phần tử được thêm vào sau cùng sẽ được lấy ra đầu tiên?
97. Độ phức tạp thời gian của thuật toán sắp xếp chèn (insertion sort) trên một mảng đã được sắp xếp theo thứ tự tăng dần là bao nhiêu?
98. Cấu trúc dữ liệu nào sau đây là một biến thể của danh sách liên kết, cho phép mỗi nút có thể có nhiều hơn hai con trỏ, mỗi con trỏ trỏ đến một nút con khác?
99. Khi thực hiện thao tác ‘thêm’ (insertion) một phần tử vào một danh sách liên kết vòng (circular linked list), nếu bạn đã có con trỏ trỏ đến phần tử cuối cùng, độ phức tạp thời gian của thao tác này là bao nhiêu?
100. Độ phức tạp thời gian (time complexity) của thao tác ‘tìm kiếm’ (search) trong một mảng đã sắp xếp (sorted array) bằng thuật toán tìm kiếm nhị phân (binary search) là bao nhiêu?
101. Cấu trúc dữ liệu nào sau đây thường được sử dụng để biểu diễn mối quan hệ phân cấp, ví dụ như cây thư mục trong hệ điều hành hoặc sơ đồ tổ chức?
102. Trong một cây nhị phân, ‘chiều cao’ (height) của một nút được định nghĩa như thế nào?
103. Độ phức tạp thời gian của thuật toán sắp xếp trộn (merge sort) khi chia mảng thành các mảng con và sắp xếp đệ quy, sau đó trộn các mảng con đã sắp xếp lại với nhau là bao nhiêu?
104. Cấu trúc dữ liệu nào sau đây thường được sử dụng để lưu trữ các bước trong một quy trình hoặc một chuỗi các hành động mà ta muốn có thể hoàn tác (undo)?
105. Cấu trúc dữ liệu nào sau đây phù hợp nhất để lưu trữ một chuỗi ký tự hoặc một dãy các phần tử có thể truy cập theo chỉ số?
106. Độ phức tạp thời gian của thuật toán sắp xếp trộn (merge sort) là bao nhiêu trong cả trường hợp tốt nhất, trung bình và xấu nhất?
107. Cấu trúc dữ liệu nào sau đây là một tập hợp các nút được sắp xếp theo quy tắc ‘cha luôn lớn hơn hoặc bằng các con’ (max-heap) hoặc ‘cha luôn nhỏ hơn hoặc bằng các con’ (min-heap)?
108. Độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính (linear search) trên một mảng không sắp xếp là bao nhiêu?
109. Trong cấu trúc dữ liệu cây hai lá phân (Binary Tree), ‘độ sâu’ (depth) của một nút được định nghĩa như thế nào?
110. Khi áp dụng thuật toán sắp xếp chèn (insertion sort) trên một mảng đã được sắp xếp theo thứ tự giảm dần, độ phức tạp thời gian sẽ là bao nhiêu?
111. Trong thuật toán sắp xếp nổi bọt (bubble sort), mỗi lượt đi (pass) qua mảng đảm bảo điều gì?
112. Độ phức tạp thời gian của thuật toán sắp xếp vun đống (heap sort) là bao nhiêu trong tất cả các trường hợp (tốt nhất, trung bình, xấu nhất)?
113. Cấu trúc dữ liệu nào sau đây cho phép tìm kiếm, thêm và xóa phần tử với độ phức tạp thời gian trung bình là O(1) bằng cách sử dụng một hàm băm để ánh xạ khóa tới chỉ mục của mảng?
114. 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 một cách hiệu quả?
115. Cấu trúc dữ liệu nào sau đây có thể được sử dụng để mô phỏng hành vi của ngăn xếp (stack) hoặc hàng đợi (queue) tùy thuộc vào cách truy cập các phần tử?
116. Độ phức tạp thời gian của thuật toán duyệt theo chiều sâu (Depth-First Search – DFS) trên một đồ thị có V đỉnh và E cạnh là bao nhiêu?
117. Độ phức tạp thời gian của thuật toán sắp xếp vun đống (heap sort) khi xây dựng heap ban đầu từ mảng là bao nhiêu?
118. Khi thực hiện thao tác ‘thêm’ (insertion) một phần tử vào bảng băm (hash table) với độ phân giải xung đột bằng cách nối chuỗi (separate chaining), trong trường hợp xấu nhất (worst-case scenario), độ phức tạp thời gian có thể là bao nhiêu nếu có ‘k’ phần tử trong cùng một chuỗi?
119. Cấu trúc dữ liệu nào sau đây có thể được sử dụng để biểu diễn một đồ thị (graph), nơi mỗi đỉnh có thể có nhiều cạnh kết nối đến các đỉnh khác?
120. Độ phức tạp thời gian của thuật toán sắp xếp chọn (selection sort) là bao nhiêu trong tất cả các trường hợp (tốt nhất, trung bình, xấu nhất)?
121. Khi duyệt cây theo thứ tự trước (pre-order traversal), thứ tự các nút được truy cập là gì?
122. Độ phức tạp không gian (space complexity) của thuật toán sắp xếp Insertion Sort là bao nhiêu?
123. Một bảng băm sử dụng phương pháp ‘xích nối’ (chaining) để giải quyết xung đột. Nếu có một lượng lớn các khóa có cùng giá trị băm, điều gì có thể xảy ra?
124. Trong một đồ thị không có hướng (undirected graph), một cạnh nối hai nút A và B có ý nghĩa gì?
125. Một bảng băm (hash table) sử dụng phương pháp giải quyết xung đột ‘mở rộng địa chỉ’ (open addressing) với kỹ thuật ‘tìm kiếm tuyến tính’ (linear probing). Nếu bảng có 7 ô và các khóa 10, 22, 31, 4, 15, 28, 17 được chèn vào theo thứ tự, giả sử hàm băm là h(k) = k mod 7. Số lần va chạm (collision) xảy ra trong quá trình chèn là bao nhiêu?
126. Cấu trúc dữ liệu nào là phù hợp nhất để mô phỏng hoạt động của một ngăn xếp (stack)?
127. Độ phức tạp thời gian của thuật toán sắp xếp Radix Sort là bao nhiêu, với N là số phần tử và D là số chữ số của số lớn nhất?
128. Một cây nhị phân tìm kiếm (Binary Search Tree – BST) có N nút. Số lượng nút tối đa trong cây có thể là bao nhiêu nếu cây đó là cây hoàn chỉnh (complete binary tree)?
129. Trong các cấu trúc dữ liệu sau đây, cấu trúc nào thường được sử dụng để triển khai hàng đợi ưu tiên (priority queue) hiệu quả nhất về mặt thời gian cho các thao tác chèn và xóa phần tử nhỏ nhất?
130. Độ phức tạp thời gian của thuật toán QuickSort trong trường hợp tốt nhất và trung bình là bao nhiêu?
131. Một cây nhị phân là cây nhị phân tìm kiếm (BST) nếu và chỉ nếu điều kiện nào sau đây được thỏa mãn cho mọi nút trong cây?
132. Trong thuật toán sắp xếp Merge Sort, bước ‘merge’ (trộn) có độ phức tạp thời gian là bao nhiêu, với hai mảng con có tổng cộng N phần tử?
133. Cấu trúc dữ liệu nào sau đây là một cấu trúc dữ liệu tuyến tính?
134. Cấu trúc dữ liệu nào phù hợp nhất để triển khai một hàng đợi ưu tiên (priority queue) sử dụng phương pháp ‘mảng đã sắp xếp’ (sorted array)?
135. Trong thuật toán QuickSort, bước ‘partition’ (phân hoạch) có độ phức tạp thời gian là bao nhiêu?
136. Khi duyệt cây theo thứ tự sau (post-order traversal), thứ tự các nút được truy cập là gì?
137. Cấu trúc dữ liệu nào là một cấu trúc dữ liệu phi tuyến tính?
138. Trong cấu trúc dữ liệu đồ thị, một cạnh có hướng (directed edge) từ nút A đến nút B có nghĩa là gì?
139. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân (Binary Search) trên một mảng đã sắp xếp là bao nhiêu?
140. Độ phức tạp thời gian của thuật toán sắp xếp Counting Sort là bao nhiêu nếu K là phạm vi của các giá trị đầu vào (ví dụ: 0 đến K)?
141. Một bảng băm sử dụng ‘mở rộng địa chỉ’ với ‘tìm kiếm bậc hai’. Nếu bảng có kích thước M và c1=c2=1, thì sau bao nhiêu lần dò tìm tối đa để tìm một ô trống hoặc phần tử cần tìm?
142. Độ phức tạp thời gian của thuật toán Insertion Sort khi dữ liệu đầu vào đã được sắp xếp là bao nhiêu?
143. Một bảng băm sử dụng phương pháp ‘mở rộng địa chỉ’ (open addressing) với kỹ thuật ‘tìm kiếm bậc hai’ (quadratic probing). Nếu một va chạm xảy ra tại vị trí h(k), các vị trí tiếp theo được thăm sẽ là gì? (giả sử c1 và c2 là các hằng số dương)
144. Độ phức tạp thời gian của thuật toán sắp xếp QuickSort khi trường hợp xấu nhất xảy ra (ví dụ: mảng đã được sắp xếp hoặc sắp xếp ngược) là bao nhiêu?
145. Cấu trúc dữ liệu nào phù hợp nhất để triển khai thuật toán tìm kiếm theo chiều sâu (Depth-First Search – DFS)?
146. Cấu trúc dữ liệu nào thường được sử dụng để triển khai thuật toán tìm kiếm theo chiều rộng (Breadth-First Search – BFS)?
147. Trong thuật toán Dijkstra để tìm đường đi ngắn nhất, cấu trúc dữ liệu nào thường được sử dụng để lưu trữ các nút cần thăm và ưu tiên nút có khoảng cách nhỏ nhất?
148. Độ phức tạp thời gian của thuật toán sắp xếp Insertion Sort là bao nhiêu trong trường hợp xấu nhất (dữ liệu sắp xếp ngược)?
149. Khi duyệt cây theo thứ tự giữa (in-order traversal) một cây nhị phân không phải là cây tìm kiếm, thứ tự các nút được truy cập là gì?
150. Trong một cây nhị phân, số lượng nút có hai con là bao nhiêu nếu cây có tổng cộng N nút và N_0 nút lá, N_1 nút có một con?
151. Độ phức tạp thời gian của thuật toán Merge Sort là bao nhiêu trong mọi trường hợp (tốt nhất, trung bình, xấu nhất)?
152. Một mảng được sắp xếp theo thứ tự giảm dần. Bạn muốn tìm kiếm một phần tử bằng tìm kiếm nhị phân. Bạn cần làm gì trước tiên?
153. Độ phức tạp thời gian của thuật toán sắp xếp Selection Sort là bao nhiêu trong mọi trường hợp (tốt nhất, trung bình, xấu nhất)?
154. Độ phức tạp thời gian của thuật toán Bubble Sort là bao nhiêu trong trường hợp tốt nhất (dữ liệu đã sắp xếp)?
155. Khi duyệt cây theo thứ tự giữa (in-order traversal) một cây nhị phân tìm kiếm (BST), các nút sẽ được duyệt theo thứ tự nào?
156. Cấu trúc dữ liệu nào thường được sử dụng để triển khai cây AVL (AVL Tree)?
157. Cấu trúc dữ liệu nào là phù hợp nhất để lưu trữ một tập hợp các phần tử duy nhất, hỗ trợ hiệu quả các thao tác thêm, xóa và kiểm tra sự tồn tại?
158. Cấu trúc dữ liệu nào phù hợp nhất để lưu trữ một danh sách các phần tử mà việc thêm và xóa phần tử ở cả hai đầu (trái và phải) đều cần hiệu quả?
159. Độ phức tạp thời gian của thuật toán sắp xếp Heap Sort là bao nhiêu?
160. Độ phức tạp thời gian của thuật toán sắp xếp Shell Sort phụ thuộc vào chuỗi các ‘khoảng cách’ (gaps) được sử dụng. Trong trường hợp xấu nhất, nó có thể là bao nhiêu?
161. Cấu trúc dữ liệu nào sử dụng con trỏ để liên kết các phần tử lại với nhau, cho phép thay đổi kích thước động?
162. Độ phức tạp thời gian của thao tác xóa phần tử khỏi Heap (heapify-down) là bao nhiêu?
163. Cấu trúc dữ liệu nào cho phép thêm và xóa phần tử ở cả hai đầu?
164. Cấu trúc dữ liệu nào sau đây sử dụng kỹ thuật ‘hash collision resolution’ để xử lý khi hai khóa khác nhau ánh xạ tới cùng một vị trí trong bảng băm?
165. Cấu trúc dữ liệu nào thường được sử dụng để lưu trữ các câu lệnh gọi hàm trong một chương trình, theo nguyên tắc LIFO?
166. Độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính (linear search) trên một mảng có n phần tử là bao nhiêu?
167. 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) bằng cách duy trì các phần tử theo thứ tự ưu tiên?
168. Khi duyệt cây nhị phân theo thứ tự tiền tố (pre-order traversal), thứ tự các nút được thăm là gì?
169. Cấu trúc dữ liệu nào sau đây được sử dụng để lưu trữ các khóa và giá trị tương ứng, cho phép tìm kiếm, thêm và xóa nhanh chóng?
170. Trong cấu trúc dữ liệu cây hai con (binary tree), một nút có thể có tối đa bao nhiêu con?
171. Độ phức tạp thời gian của thuật toán tìm kiếm nhị phân trên một mảng đã sắp xếp có n phần tử là bao nhiêu?
172. Độ phức tạp thời gian trung bình của thuật toán sắp xếp Quick Sort là bao nhiêu?
173. Trong thuật toán Floyd-Warshall, mục đích chính là gì?
174. Cấu trúc dữ liệu nào phù hợp nhất để biểu diễn mối quan hệ giữa các thành phố trên bản đồ, nơi các thành phố là các đỉnh và các con đường là các cạnh có trọng số?
175. Cấu trúc dữ liệu nào là một dạng của cây nhị phân, trong đó giá trị của mỗi nút lớn hơn hoặc bằng giá trị của các nút con của nó?
176. Trong thuật toán DFS, cấu trúc dữ liệu nào được sử dụng để lưu trữ các đỉnh cần thăm?
177. Trong thuật toán Kruskal, cạnh nào sẽ được chọn để thêm vào cây khung nhỏ nhất (MST)?
178. Độ phức tạp thời gian của thuật toán sắp xếp Insertion Sort trong trường hợp mảng đã được sắp xếp là bao nhiêu?
179. Độ phức tạp thời gian của thao tác thêm một phần tử vào Heap (heapify-up) là bao nhiêu?
180. Trong một cây nhị phân đầy đủ (full binary tree), mỗi nút không phải là lá đều có đúng hai nút con. Nếu cây có N nút lá, số nút không phải là lá là bao nhiêu?
181. Độ phức tạp thời gian của thuật toán sắp xếp Bubble Sort trong trường hợp xấu nhất là bao nhiêu?
182. Khi duyệt cây nhị phân theo thứ tự trung tố (in-order traversal), thứ tự các nút được thăm là gì?
183. Khi duyệt cây nhị phân theo thứ tự hậu tố (post-order traversal), thứ tự các nút được thăm là gì?
184. Cấu trúc dữ liệu nào phù hợp để lưu trữ một tập hợp các phần tử duy nhất, không có thứ tự và cho phép kiểm tra sự tồn tại của một phần tử nhanh chóng?
185. Độ phức tạp thời gian của thuật toán sắp xếp Selection Sort là bao nhiêu?
186. Trong các cấu trúc dữ liệu sau, cấu trúc nào thường được sử dụng để triển khai hàng đợi ưu tiên (priority queue) một cách hiệu quả nhất?
187. Cấu trúc dữ liệu nào là một dạng đặc biệt của cây hai con tìm kiếm, nơi chiều cao của cây luôn được giữ ở mức thấp để đảm bảo hiệu suất O(log n) cho các thao tác?
188. Độ phức tạp thời gian của thuật toán DFS (Depth-First Search) là bao nhiêu?
189. Cấu trúc dữ liệu nào thường được sử dụng để quản lý các tác vụ cần xử lý theo thứ tự thời gian đến trước, phục vụ trước (First-In, First-Out – FIFO)?
190. Độ phức tạp thời gian của thuật toán sắp xếp Heap Sort là bao nhiêu?
191. Cấu trúc dữ liệu nào sau đây có thể được sử dụng để mô phỏng một ngăn xếp (stack)?
192. Cấu trúc dữ liệu nào sử dụng nguyên tắc LIFO (Last-In, First-Out)?
193. Trong thuật toán Prim, đỉnh nào sẽ được chọn để thêm vào cây khung nhỏ nhất (Minimum Spanning Tree – MST)?
194. Trong thuật toán Dijkstra, đỉnh nào sẽ được chọn để thăm tiếp theo?
195. Trong thuật toán BFS (Breadth-First Search), cấu trúc dữ liệu nào được sử dụng để lưu trữ các đỉnh cần thăm?
196. Độ phức tạp thời gian của thuật toán sắp xếp Merge Sort là bao nhiêu?
197. Độ phức tạp không gian (space complexity) của thuật toán tìm kiếm nhị phân (binary search) trên một mảng có n phần tử là bao nhiêu?
198. Cấu trúc dữ liệu nào sau đây cho phép truy cập ngẫu nhiên (random access) đến bất kỳ phần tử nào dựa trên chỉ số của nó?
199. Cây nhị phân tìm kiếm (BST) có ưu điểm gì so với mảng trong việc tìm kiếm một phần tử?
200. Cấu trúc dữ liệu nào cho phép truy cập phần tử theo thứ tự, nhưng việc thêm hoặc xóa phần tử ở giữa danh sách có thể tốn kém?