Bộ 12 - Trắc nghiệm Cấu trúc dữ liệu và giải thuật có đáp án
Thời gian còn lại: --:--
Kết quả của bạn:
Bạn đã đúng:
Bạn đã sai:
Tổng số câu:
Câu 1:Trong phân tích thuật toán, độ phức tạp thời gian của hai vòng lặp lồng nhau, trong đó mỗi vòng lặp đều chạy từ 1 đến n, được biểu diễn là gì?
💡 Lời giải chi tiết:
Theo phân tích phổ biến, hai vòng lặp lồng nhau với số lần lặp mỗi vòng là n sẽ thực hiện tổng cộng n nhân n bước, dẫn đến độ phức tạp thời gian là O(n^2). Kết luận Lý giải O(n^2).
Câu 2:Ưu điểm lớn nhất của Danh sách liên kết (Linked List) so với Mảng (Array) khi thực hiện thao tác chèn phần tử là gì?
💡 Lời giải chi tiết:
Theo đặc điểm cấu trúc dữ liệu, danh sách liên kết cho phép chèn phần tử vào đầu mà không cần dịch chuyển các phần tử khác như mảng, giúp đạt độ phức tạp O(1). Kết luận Lý giải Chèn phần tử vào đầu danh sách với độ phức tạp O(1).
Câu 3:Trong ký pháp Ba Lan ngược (Postfix), giá trị của biểu thức '5 2 + 3 *' là bao nhiêu?
💡 Lời giải chi tiết:
Theo quy tắc tính toán ký pháp hậu tố, ta thực hiện (5 + 2) trước sau đó nhân với 3, cho ra kết quả cuối cùng là 21. Kết luận Lý giải 21.
Câu 4:Cấu trúc dữ liệu nào thường được sử dụng để cài đặt thuật toán Tìm kiếm theo chiều rộng (BFS) trên đồ thị?
💡 Lời giải chi tiết:
Theo nguyên lý của thuật toán BFS, hàng đợi được dùng để lưu trữ các đỉnh theo thứ tự 'vào trước ra trước' nhằm đảm bảo các đỉnh gần nguồn được duyệt trước. Kết luận Lý giải Hàng đợi (Queue).
Câu 5:Khi duyệt một Cây tìm kiếm nhị phân (BST) theo thứ tự giữa (In-order), kết quả thu được sẽ có đặc điểm gì?
💡 Lời giải chi tiết:
Theo tính chất của BST, phép duyệt In-order (Trái - Gốc - Phải) luôn truy xuất các giá trị theo trình tự từ nhỏ đến lớn. Kết luận Lý giải Các phần tử được liệt kê theo thứ tự tăng dần.
Câu 6:Trong cây cân bằng AVL, chỉ số cân bằng (balance factor) của một nút được định nghĩa như thế nào?
💡 Lời giải chi tiết:
Theo định nghĩa cây AVL, chỉ số cân bằng của một nút là hiệu số giữa chiều cao của cây con bên trái và chiều cao của cây con bên phải. Kết luận Lý giải Hiệu chiều cao giữa cây con trái và cây con phải.
Câu 7:Thuật toán Sắp xếp nhanh (Quick Sort) rơi vào trường hợp xấu nhất với độ phức tạp O(n^2) khi nào?
💡 Lời giải chi tiết:
Theo phân tích thuật toán, nếu phần tử chốt luôn là giá trị cực đại hoặc cực tiểu (thường xảy ra với mảng đã sắp xếp), phân hoạch sẽ bị lệch tối đa dẫn đến độ phức tạp O(n^2). Kết luận Lý giải Khi mảng đã được sắp xếp hoặc sắp xếp ngược hoàn toàn.
Câu 8:Điều kiện tiên quyết để áp dụng thuật toán Tìm kiếm nhị phân (Binary Search) trên một danh sách là gì?
💡 Lời giải chi tiết:
Theo nguyên lý chia để trị, tìm kiếm nhị phân yêu cầu dữ liệu phải được sắp xếp để có thể thu hẹp phạm vi tìm kiếm một cách logic sau mỗi bước so sánh. Kết luận Lý giải Danh sách phải được sắp xếp theo một thứ tự xác định.
Câu 9:Trong một đống cực đại (Max-heap), tính chất nào sau đây luôn luôn đúng cho mọi nút không phải nút lá?
💡 Lời giải chi tiết:
Theo đặc điểm của cấu trúc Max-heap, giá trị của mỗi nút cha phải luôn lớn hơn hoặc bằng giá trị của các nút con trực tiếp của nó. Kết luận Lý giải Giá trị của nút cha lớn hơn hoặc bằng giá trị các nút con.
Câu 10:Trong bảng băm (Hash Table), phương pháp 'Dò tuyến tính' (Linear Probing) dùng để giải quyết vấn đề gì?
💡 Lời giải chi tiết:
Theo kỹ thuật quản lý bảng băm, dò tuyến tính là một phương pháp địa chỉ mở dùng để tìm vị trí trống tiếp theo khi xảy ra xung đột tại một chỉ mục băm. Kết luận Lý giải Xử lý xung đột khi hai khóa có cùng giá trị băm.
Câu 11:Tại sao một hàm đệ quy luôn cần có 'trường hợp cơ sở' (base case)?
💡 Lời giải chi tiết:
Theo nguyên lý lập trình, trường hợp cơ sở cung cấp điểm dừng cho các lời gọi hàm lồng nhau, đảm bảo chương trình không chạy vô hạn dẫn đến cạn kiệt bộ nhớ ngăn xếp. Kết luận Lý giải Để kết thúc việc gọi đệ quy và tránh lỗi tràn ngăn xếp (stack overflow).
Câu 12:Thuật toán Dijkstra dùng để tìm đường đi ngắn nhất sẽ gặp lỗi hoặc không chính xác trong trường hợp nào?
💡 Lời giải chi tiết:
Theo lý thuyết đồ thị, thuật toán Dijkstra dựa trên chiến lược tham lam và không thể xử lý chính xác các trường hợp có trọng số cạnh âm vì nó giả định khoảng cách chỉ tăng thêm. Kết luận Lý giải Đồ thị có các cạnh có trọng số âm.
Câu 13:Một thuật toán sắp xếp được gọi là 'ổn định' (stable) nếu nó đảm bảo điều gì?
💡 Lời giải chi tiết:
Theo định nghĩa về tính ổn định, nếu hai phần tử bằng nhau xuất hiện theo thứ tự A trước B trong mảng gốc, chúng vẫn sẽ giữ nguyên thứ tự đó sau khi sắp xếp. Kết luận Lý giải Duy trì thứ tự tương đối của các phần tử có giá trị bằng nhau.
Câu 14:Đặc điểm cốt lõi của phương pháp Quy hoạch động (Dynamic Programming) là gì?
💡 Lời giải chi tiết:
Theo phân tích kỹ thuật, quy hoạch động giải quyết tối ưu bằng cách tận dụng kết quả của các bài toán con đã được giải trước đó (memoization) để tránh tính toán lặp lại. Kết luận Lý giải Chia bài toán lớn thành các bài toán con gối nhau và lưu trữ kết quả của chúng.
Câu 15:Độ phức tạp không gian O(1) của một thuật toán có nghĩa là gì?
💡 Lời giải chi tiết:
Theo định nghĩa về độ phức tạp không gian, O(1) biểu thị rằng tài nguyên bộ nhớ phụ trợ cần thiết không thay đổi ngay cả khi khối lượng dữ liệu đầu vào tăng lên. Kết luận Lý giải Lượng bộ nhớ sử dụng là hằng số, không phụ thuộc vào kích thước đầu vào.
Câu 16:Khi biểu diễn đồ thị, việc sử dụng Ma trận kề (Adjacency Matrix) hiệu quả hơn Danh sách kề (Adjacency List) trong trường hợp nào?
💡 Lời giải chi tiết:
Theo so sánh hiệu năng, ma trận kề cho phép kiểm tra sự tồn tại của một cạnh giữa hai đỉnh với thời gian O(1) và không lãng phí quá nhiều không gian khi số lượng cạnh lớn. Kết luận Lý giải Đồ thị dày (nhiều cạnh, gần như đồ thị đầy đủ).
Câu 17:Nguyên tắc hoạt động chính của cấu trúc dữ liệu Hàng đợi (Queue) là gì?
💡 Lời giải chi tiết:
Theo định nghĩa cấu trúc dữ liệu, hàng đợi hoạt động theo cơ chế First-In-First-Out, tương tự như việc xếp hàng chờ trong thực tế. Kết luận Lý giải Vào trước, ra trước (FIFO).
Câu 18:Trong một cây nhị phân hoàn chỉnh, số lượng nút tối đa ở mức k (với gốc ở mức 0) là bao nhiêu?
💡 Lời giải chi tiết:
Theo tính chất của cây nhị phân, tại mỗi mức mới số nút tối đa sẽ gấp đôi mức trước đó, dẫn đến số nút ở mức k là 2 lũy thừa k. Kết luận Lý giải 2^k.
Câu 19:Cách đơn giản nhất để tối ưu hóa thuật toán Sắp xếp nổi bọt (Bubble Sort) là gì?
💡 Lời giải chi tiết:
Theo lý thuyết tối ưu, nếu một lượt duyệt qua toàn bộ mảng mà không phát sinh hoán đổi, điều đó chứng tỏ mảng đã hoàn toàn được sắp xếp. Kết luận Lý giải Dừng thuật toán nếu không có phép tráo đổi nào xảy ra trong một lượt duyệt.
Câu 20:Đặc điểm khác biệt nhất của Danh sách liên kết vòng (Circular Linked List) so với Danh sách liên kết đơn là gì?
💡 Lời giải chi tiết:
Theo cấu trúc hình học của danh sách liên kết vòng, liên kết của phần tử cuối cùng không phải là NULL mà là địa chỉ của phần tử đầu danh sách. Kết luận Lý giải Nút cuối cùng trỏ ngược lại về nút đầu tiên.
Câu 21:Thuật toán Sắp xếp trộn (Merge Sort) sử dụng chiến lược thiết kế giải thuật nào sau đây?
💡 Lời giải chi tiết:
Theo phân loại giải thuật, Merge Sort chia mảng thành các mảng con nhỏ nhất, sắp xếp chúng rồi trộn lại để tạo thành kết quả cuối cùng. Kết luận Lý giải Chia để trị (Divide and Conquer).
Câu 22:Trong cấu trúc bảng băm, 'Hệ số tải' (Load Factor) được tính bằng công thức nào?
💡 Lời giải chi tiết:
Theo tiêu chuẩn thiết kế bảng băm, hệ số tải là tỉ lệ giữa số lượng mục dữ liệu hiện có và tổng dung lượng lưu trữ của bảng. Kết luận Lý giải Số lượng phần tử chia cho kích thước bảng băm.
Câu 23:Cấu trúc dữ liệu nào được sử dụng để hỗ trợ quá trình 'Quay lui' (Backtracking) hoặc Tìm kiếm theo chiều sâu (DFS)?
💡 Lời giải chi tiết:
Theo cơ chế hoạt động, ngăn xếp cho phép lưu lại trạng thái các nút để có thể quay ngược lại (pop) khi một nhánh khám phá kết thúc. Kết luận Lý giải Ngăn xếp (Stack).
Câu 24:Định nghĩa nào sau đây là chính xác cho một 'Cây nhị phân đầy đủ' (Full Binary Tree)?
💡 Lời giải chi tiết:
Theo thuật ngữ cấu trúc cây, cây nhị phân đầy đủ là cây mà không có nút nào chỉ có duy nhất một nút con đơn lẻ. Kết luận Lý giải Mỗi nút có đúng 0 hoặc 2 nút con.
Câu 25:Khi cài đặt Hàng đợi ưu tiên (Priority Queue) bằng Heap, thao tác chèn một phần tử có độ phức tạp thời gian là bao nhiêu?
💡 Lời giải chi tiết:
Theo phân tích cấu trúc Heap, khi chèn một phần tử, ta cần thực hiện quá trình 'vun đống' (heapify) theo chiều dọc của cây, vốn có chiều cao là log n. Kết luận Lý giải O(log n).