Bộ đề 1

Câu 1

Thao tác nào sau đây không phải là thao tác cơ bản trên cây?

Câu 2

Trong cấu trúc dữ liệu ngăn xếp (stack), thao tác nào sau đây tuân theo nguyên tắc LIFO (Last-In, First-Out)?

Câu 3

Độ phức tạp thời gian tốt nhất của thuật toán Bubble Sort là bao nhiêu?

Câu 4

Cho một mảng các số nguyên chưa được sắp xếp. Bạn muốn tìm phần tử lớn thứ k trong mảng. Cấu trúc dữ liệu và thuật toán nào sau đây phù hợp nhất?

Câu 5

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?

Câu 6

Thuật toán sắp xếp nào sau đây hoạt động bằng cách chia mảng thành các mảng con, sắp xếp chúng, sau đó hợp nhất lại?

Câu 7

Cho đoạn code sau (giả sử đã khai báo và khởi tạo): 'int arr[5] = {5, 2, 8, 1, 9};' Sau khi thực hiện đoạn code sau: 'for (int i = 0; i < 4; i++) { for (int j = 0; j arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }' Mảng 'arr' sẽ có giá trị như thế nào?

Câu 8

Ư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ì?

Câu 9

Ưu điểm chính của việc sử dụng cây so với danh sách liên kết là gì?

Câu 10

Độ phức tạp thời gian trung bình để tìm kiếm một phần tử trong cây tìm kiếm nhị phân cân bằng là bao nhiêu?

Câu 11

Trong cấu trúc dữ liệu bảng băm (hash table), điều gì xảy ra khi hai khóa khác nhau băm (hash) đến cùng một vị trí?

Câu 12

Trong thuật toán sắp xếp nào sau đây, độ phức tạp thời gian trung bình là O(n log n)?

Câu 13

Phương pháp nào sau đây không phải là một phương pháp giải quyết xung đột trong bảng băm?

Câu 14

Độ phức tạp thời gian của thuật toán tìm kiếm tuyến tính (linear search) trong trường hợp xấu nhất là bao nhiêu?

Câu 15

Ứng dụng nào sau đây không phải là ứng dụng phổ biến của đồ thị?

Câu 16

Độ phức tạp thời gian trung bình để tìm kiếm một phần tử trong bảng băm (hash table) với phương pháp separate chaining là bao nhiêu, giả sử số lượng phần tử trong mỗi bucket là nhỏ?

Câu 17

Ứ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)?

Câu 18

Bạn cần triển khai một hệ thống undo/redo trong một trình soạn thảo văn bản. Cấu trúc dữ liệu nào sau đây phù hợp nhất?

Câu 19

Điều gì xảy ra nếu bạn cố gắng lấy một phần tử từ một ngăn xếp (stack) trống?

Câu 20

Trong thuật toán tìm kiếm theo chiều sâu (DFS), cấu trúc dữ liệu nào thường được sử dụng để theo dõi các nút đã thăm?

Câu 21

Bạn cần 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 (ví dụ: (a + b) * (c - d)). Cấu trúc dữ liệu nào sau đây phù hợp nhất?

Câu 22

Trong một hệ thống quản lý bộ nhớ, bạn cần theo dõi các khối bộ nhớ đã được cấp phát và giải phóng. Cấu trúc dữ liệu nào sau đây phù hợp nhất?

Câu 23

Trong thuật toán tìm kiếm nhị phân, điều kiện tiên quyết nào phải được đáp ứng?

Câu 24

Trong cấu trúc dữ liệu danh sách liên kết đơn, thao tác nào sau đây có độ phức tạp thời gian O(1)?

Câu 25

Trong thuật toán Quick Sort, việc chọn phần tử chốt (pivot) ảnh hưởng đến hiệu suất như thế nào?

Câu 26

Cho một cây tìm kiếm nhị phân (BST) với các nút có giá trị: 5, 3, 7, 2, 4, 6, 8. Nếu duyệt cây theo thứ tự inorder, thứ tự các nút sẽ là gì?

Câu 27

Thuật toán nào sau đây tìm cây khung nhỏ nhất (minimum spanning tree) cho một đồ thị liên thông có trọng số?

Câu 28

Cấu trúc dữ liệu nào sau đây thường được sử dụng để triển khai thuật toán tìm kiếm theo chiều rộng (BFS)?

Câu 29

Thuật toán nào sau đây 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?

Câu 30

Cho một đồ thị có các cạnh sau: A-B, A-C, B-D, C-E. Nếu bắt đầu từ đỉnh A và thực hiện tìm kiếm theo chiều rộng (BFS), thứ tự các đỉnh được thăm sẽ là gì?