Bộ 4 - 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 cấu trúc dữ liệu mảng, việc truy cập một phần tử bất kỳ thông qua chỉ số (index) có độ phức tạp thời gian là bao nhiêu?
💡 Lời giải chi tiết:
Vì các phần tử mảng nằm ở các ô nhớ liên tiếp, địa chỉ của một phần tử được tính toán trực tiếp từ chỉ số và địa chỉ gốc trong thời gian hằng số nên Kết luận Lý giải O(1).
Câu 2:Thuật toán tìm kiếm nhị phân (Binary Search) yêu cầu tập dữ liệu đầu vào phải có đặc điểm gì?
💡 Lời giải chi tiết:
Tìm kiếm nhị phân dựa trên việc so sánh phần tử giữa để loại bỏ một nửa phạm vi tìm kiếm, điều này chỉ khả thi khi tập dữ liệu đã có thứ tự nên Kết luận Lý giải Dữ liệu phải được sắp xếp.
Câu 3:Cấu trúc dữ liệu nào hoạt động theo nguyên lý 'Vào sau, Ra trước' (Last-In-First-Out)?
💡 Lời giải chi tiết:
Ngăn xếp là cấu trúc dữ liệu hạn chế mà việc thêm và xóa phần tử chỉ thực hiện tại một đầu duy nhất gọi là đỉnh nên Kết luận Lý giải Ngăn xếp (Stack).
Câu 4:Trong một cây nhị phân tìm kiếm (BST), phép duyệt nào sẽ cho kết quả là một dãy các giá trị tăng dần?
💡 Lời giải chi tiết:
Phép duyệt trung thứ tự truy cập các nút theo thứ tự: con trái, nút gốc, rồi đến con phải, khớp với tính chất của BST để tạo ra dãy số tăng dần nên Kết luận Lý giải Duyệt trung thứ tự (In-order).
Câu 5:Độ phức tạp thời gian trong trường hợp xấu nhất của thuật toán Sắp xếp nhanh (Quick Sort) là gì?
💡 Lời giải chi tiết:
Trường hợp xấu nhất xảy ra khi phần tử chốt luôn là giá trị cực đại hoặc cực tiểu khiến việc phân chia không cân bằng, dẫn đến số lần so sánh là Kết luận Lý giải O(n^2).
Câu 6:Hàng đợi (Queue) thường được ứng dụng trong trường hợp nào sau đây?
💡 Lời giải chi tiết:
Hàng đợi hoạt động theo nguyên tắc FIFO nên rất phù hợp để quản lý các đối tượng cần được phục vụ theo đúng trình tự xuất hiện nên Kết luận Lý giải Xử lý các tiến trình theo thứ tự ưu tiên thời gian đến.
Câu 7:Ưu điểm chính của danh sách liên kết so với mảng tĩnh là gì?
💡 Lời giải chi tiết:
Danh sách liên kết không yêu cầu các khối nhớ liên tiếp và có thể mở rộng hoặc thu hẹp động trong quá trình thực thi nên Kết luận Lý giải Khả năng thay đổi kích thước linh hoạt và chèn/xóa phần tử dễ dàng.
Câu 8:Chỉ số cân bằng (balance factor) của một nút trong cây AVL được tính như thế nào?
💡 Lời giải chi tiết:
Theo định nghĩa về cây tự cân bằng AVL, chỉ số cân bằng tại mỗi nút được xác định bằng hiệu số chiều cao giữa hai cây con của nó nên Kết luận Lý giải Hiệu giữa chiều cao cây con trái và chiều cao cây con phải.
Câu 9:Thuật toán sắp xếp nào sau đây luôn có độ phức tạp thời gian là O(n^2) trong mọi trường hợp (tốt nhất, trung bình, xấu nhất)?
💡 Lời giải chi tiết:
Sắp xếp chọn luôn thực hiện hai vòng lặp lồng nhau để tìm phần tử nhỏ nhất mà không phụ thuộc vào trạng thái ban đầu của dữ liệu nên Kết luận Lý giải Sắp xếp chọn (Selection Sort).
Câu 10:Trong đồ thị, biểu diễn bằng danh sách kề (Adjacency List) có ưu điểm gì so với ma trận kề (Adjacency Matrix)?
💡 Lời giải chi tiết:
Danh sách kề chỉ lưu trữ các kết nối thực sự tồn tại thay vì mọi khả năng kết nối, giúp giảm đáng kể bộ nhớ khi số cạnh nhỏ hơn nhiều so với bình phương số đỉnh nên Kết luận Lý giải Tiết kiệm không gian lưu trữ đối với đồ thị thưa.
Câu 11:Đặc điểm quan trọng nhất để một hàm được gọi là hàm đệ quy là gì?
💡 Lời giải chi tiết:
Đệ quy là kỹ thuật lập trình trong đó một hàm giải quyết bài toán bằng cách tự gọi lại các phiên bản nhỏ hơn của chính nó nên Kết luận Lý giải Hàm tự gọi lại chính nó bên trong thân hàm.
Câu 12:Trong cấu trúc dữ liệu Max-Heap, phần tử có giá trị lớn nhất luôn nằm ở vị trí nào?
💡 Lời giải chi tiết:
Tính chất của Max-Heap quy định rằng giá trị của nút cha luôn lớn hơn hoặc bằng giá trị của các nút con, do đó phần tử lớn nhất luôn ở trên cùng nên Kết luận Lý giải Nút gốc (root).
Câu 13:Phương pháp giải quyết xung đột bằng 'Thăm dò tuyến tính' (Linear Probing) thuộc về kỹ thuật nào trong bảng băm?
💡 Lời giải chi tiết:
Thăm dò tuyến tính tìm kiếm vị trí trống tiếp theo trong mảng bảng băm khi xảy ra xung đột, vốn là một dạng của kỹ thuật địa chỉ mở nên Kết luận Lý giải Địa chỉ mở (Open Addressing).
Câu 14:Một cây có 'n' nút thì sẽ có chính xác bao nhiêu cạnh?
💡 Lời giải chi tiết:
Theo lý thuyết đồ thị, một cây là đồ thị liên thông không có chu trình, và số cạnh luôn ít hơn số đỉnh đúng một đơn vị nên Kết luận Lý giải n - 1.
Câu 15:Thuật toán Dijkstra được sử dụng để giải quyết bài toán nào sau đây?
💡 Lời giải chi tiết:
Dijkstra là thuật toán phổ biến dựa trên cơ chế tham lam để tìm đường đi có tổng trọng số nhỏ nhất từ một đỉnh đến mọi đỉnh khác trong đồ thị trọng số không âm nên Kết luận Lý giải Tìm đường đi ngắn nhất từ một đỉnh nguồn đến các đỉnh còn lại.
Câu 16:Phép toán 'pop' trong ngăn xếp (Stack) thực hiện công việc gì?
💡 Lời giải chi tiết:
Thao tác 'pop' là thao tác cơ bản để lấy ra phần tử được đưa vào gần đây nhất khỏi cấu trúc ngăn xếp nên Kết luận Lý giải Loại bỏ và trả về phần tử ở đỉnh ngăn xếp.
Câu 17:Kỹ thuật 'Chia để trị' (Divide and Conquer) được áp dụng trong thuật toán sắp xếp nào sau đây?
💡 Lời giải chi tiết:
Sắp xếp trộn chia mảng thành các mảng con nhỏ hơn, giải quyết chúng một cách độc lập rồi trộn lại để có kết quả cuối cùng nên Kết luận Lý giải Sắp xếp trộn (Merge Sort).
Câu 18:Trong thuật toán tìm kiếm theo chiều rộng (BFS), cấu trúc dữ liệu bổ trợ nào thường được sử dụng?
💡 Lời giải chi tiết:
BFS duyệt theo từng mức và cần lưu trữ các đỉnh lân cận để thăm sau theo thứ tự xuất hiện, do đó hàng đợi là lựa chọn phù hợp nhất nên Kết luận Lý giải Hàng đợi (Queue).
Câu 19:Danh sách liên kết đôi (Doubly Linked List) khác danh sách liên kết đơn ở điểm nào?
💡 Lời giải chi tiết:
Danh sách liên kết đôi cho phép duyệt theo cả hai chiều nhờ việc mỗi nút giữ địa chỉ của cả nút kế tiếp và nút phía trước nên Kết luận Lý giải Mỗi nút có thêm một con trỏ trỏ đến nút đứng trước nó.
Câu 20:Mã hóa Huffman sử dụng chiến lược thiết kế thuật toán nào?
💡 Lời giải chi tiết:
Mã hóa Huffman luôn chọn hai nút có tần suất thấp nhất để kết hợp ở mỗi bước nhằm tối ưu hóa độ dài mã hóa toàn cục nên Kết luận Lý giải Thuật toán tham lam (Greedy Algorithm).
Câu 21:Hàng đợi vòng (Circular Queue) được thiết kế nhằm mục đích chính là gì?
💡 Lời giải chi tiết:
Trong hàng đợi tuyến tính, các vị trí trống ở đầu mảng không thể tái sử dụng sau khi 'dequeue', và hàng đợi vòng giải quyết vấn đề này bằng cách kết nối cuối mảng với đầu mảng nên Kết luận Lý giải Để khắc phục nhược điểm lãng phí không gian bộ nhớ của hàng đợi tuyến tính.
Câu 22:Trong một cây nhị phân đầy đủ (Full Binary Tree) có độ sâu k (gốc ở mức 0), số nút tối đa là bao nhiêu?
💡 Lời giải chi tiết:
Số nút tối đa của cây nhị phân đạt được khi mọi mức đều đầy, tuân theo công thức tổng của cấp số nhân nên Kết luận Lý giải 2^(k+1) - 1.
Câu 23:Thuật toán sắp xếp nào sau đây hoạt động hiệu quả nhất khi tập dữ liệu đầu vào đã gần như được sắp xếp?
💡 Lời giải chi tiết:
Sắp xếp chèn chỉ tốn thời gian O(n) khi dữ liệu đã gần đúng thứ tự vì nó chỉ cần thực hiện rất ít phép dịch chuyển nên Kết luận Lý giải Sắp xếp chèn (Insertion Sort).
Câu 24:Cấu trúc dữ liệu B-Tree thường được ứng dụng rộng rãi nhất trong lĩnh vực nào?
💡 Lời giải chi tiết:
B-Tree được thiết kế để giảm thiểu số lần đọc đĩa nhờ cấu trúc cây nhiều nhánh và cân bằng, rất phù hợp cho lưu trữ dữ liệu lớn nên Kết luận Lý giải Hệ quản trị cơ sở dữ liệu và hệ thống tệp tin.
Câu 25:Độ phức tạp không gian (Space Complexity) của thuật toán tính giai thừa bằng đệ quy thông thường là bao nhiêu?
💡 Lời giải chi tiết:
Mỗi lời gọi đệ quy tạo ra một khung ngăn xếp (stack frame) mới trên bộ nhớ hệ thống, dẫn đến việc sử dụng bộ nhớ tỉ lệ thuận với độ sâu đệ quy nên Kết luận Lý giải O(n).