Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Câu hỏi về Thuật toán và Cấu trúc Dữ liệu

Total questions: 40

Worksheet time: 20mins

Name
Class
Date
1.

Đoạn mã sau sử dụng thuật toán sắp xếp nào?

for (int i = 0; i < n-1; i++)

    for (int j = 0; j < n-i-1; j++)

        if (a[j] > a[j+1])

            swap(a[j], a[j+1]);

a)

Insertion Sort

b)

Merge Sort

c)

Bubble Sort

d)

Selection Sort

2.

Thuật toán nào sau đây có độ phức tạp trung bình tốt nhất cho dữ liệu ngẫu nhiên?

a)

Merge Sort

b)

Quick Sort

c)

Heap Sort

d)

Selection Sort

3.

Với dữ liệu gần như đã được sắp xếp, thuật toán nào có hiệu năng cao nhất?

a)

Quick Sort

b)

Bubble Sort

c)

Insertion Sort

d)

Heap Sort

4.

Với một hàng đợi ưu tiên dạng max-heap chứa các phần tử [50, 40, 30, 20, 10], sau khi thêm phần tử 60 vào, đỉnh heap sẽ là?

a)

50

b)

60

c)

40

d)

30

5.

Dữ liệu đầu vào: [10, 20, 15, 30, 40]. Kết quả tạo heap là gì (dạng max-heap)?

a)

[40, 30, 15, 10, 20]

b)

[40, 20, 30, 10, 15]

c)

[40, 30, 20, 10, 15]

d)

[30, 20, 15, 10, 40]

6.

Kỹ thuật xử lý xung đột trong bảng băm không bao gồm phương pháp nào sau đây?

a)

Separate chaining

b)

Linear probing

c)

Binary search

d)

Quadratic probing

7.

Nếu bảng băm có kích thước 10, hàm băm là h(k) = k % 10. Khi chèn các khóa 7, 17, 27 thì số phần tử ở vị trí chỉ mục 7 là?

a)

0

b)

1

c)

2

d)

3

8.

Sau khi chèn lần lượt các phần tử: 10, 20, 30 vào cây AVL, cây sẽ cân bằng lại bằng phép quay nào?

a)

Không cần quay

b)

Quay trái đơn

c)

Quay phải đơn

d)

Quay kép trái-phải

9.

Chiều cao tối đa của một cây AVL với 10 nút là:

a)

3

b)

4

c)

5

d)

6

10.

Với cây BST sau: 50 / \ 30 70 / \ / 20 40 60 Thứ tự duyệt hậu tự là?

a)

20 40 30 60 70 50

b)

30 20 40 70 60 50

c)

20 40 30 60 70 50

d)

20 30 40 60 70 50

11.

Nếu xóa node 50, nút thay thế thích hợp trong cây BST là?

a)

Node có giá trị nhỏ nhất bên phải

b)

Node có giá trị lớn nhất bên trái

c)

Node có giá trị nhỏ nhất trong cây

d)

Node có giá trị lớn nhất trong cây

12.

Một cây nhị phân đầy đủ (full binary tree) có 15 node. Có bao nhiêu node lá?

a)

8

b)

7

c)

15

d)

10

13.

Với cây sau: A / \ B C / \ D E Thứ tự duyệt theo hậu tự là?

a)

D E B C A

b)

A B C D E

c)

D E C B A

d)

D E C A B

14.

Một cây nhị phân đầy đủ (full binary tree) có đúng n nút lá thì tổng số nút trong cây là?

a)

2n

b)

2n - 1

c)

n

d)

n + 1

15.

Khi nào thuật toán Merge Sort có thể kém hiệu quả hơn Quick Sort trên dữ liệu ngẫu nhiên?

a)

Khi sử dụng thêm bộ nhớ tạm trong merge

b)

Khi dữ liệu chứa các phần tử giống nhau

c)

Khi độ sâu đệ quy quá lớn

d)

Khi danh sách đã gần sắp xếp

16.

Đoạn mã sau thực hiện thao tác gì? int mid = (l + r) / 2; mergeSort(arr, l, mid); mergeSort(arr, mid + 1, r); merge(arr, l, mid, r);

a)

Sắp xếp chèn

b)

Sắp xếp chọn

c)

Merge Sort

d)

Quick Sort

17.

Đoạn mã dưới đây mô tả loại sắp xếp nào? int i, j, min_idx; for (i = 0; i < n-1; i++) { min_idx = i; for (j = i+1; j < n; j++) if (arr[j] < arr[min_idx]) min_idx = j; swap(&arr[min_idx], &arr[i]); }

a)

Selection Sort

b)

Insertion Sort

c)

Bubble Sort

d)

Shell Sort

18.

Trong Quick Sort, nếu bạn luôn chọn phần tử cuối cùng làm pivot và dãy đầu vào đã được sắp xếp tăng dần, độ phức tạp là:

a)

O(n log n)

b)

O(log n)

c)

O(n)

d)

O(n²)

19.

Cho heap dạng max-heap: [90, 80, 70, 50, 60, 30, 40]. Sau khi xóa phần tử gốc, phần tử nào sẽ là gốc tiếp theo?

a)

80

b)

70

c)

60

d)

40

20.

Trong hàng đợi ưu tiên sử dụng heap, thao tác chèn phần tử mới có độ phức tạp:

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n log n)

21.

Nếu một hàng đợi ưu tiên được cài đặt bằng cây nhị phân không cân bằng, độ phức tạp tồi nhất của thao tác extract_max() là:

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n²)

22.

Giả sử bạn sử dụng priority queue để mô phỏng hệ thống xử lý bệnh nhân khẩn cấp (người có mức ưu tiên cao hơn được xử lý trước). Cấu trúc nào phù hợp nhất?

a)

Stack

b)

Queue

c)

Max-Heap

d)

Hash Table

23.

Với phương pháp linear probing trong bảng băm, điều gì xảy ra khi có quá nhiều phần tử?

a)

Truy cập sẽ nhanh hơn

b)

Tải trọng giảm

c)

Hiện tượng clustering xảy ra

d)

Sử dụng ít bộ nhớ hơn

24.

Trong một bảng băm, tải trọng (load factor) là gì?

a)

Tổng số phần tử chia cho kích thước bảng

b)

Kích thước bảng chia cho tổng số phần tử

c)

Kích thước bảng

d)

Số phần tử có thể chứa tối đa

25.

Nếu một bảng băm có tải trọng > 1, điều gì có thể xảy ra?

a)

Tìm kiếm có thể chậm hơn

b)

Không có ảnh hưởng

c)

Giảm xung đột

d)

Giảm tốc độ chèn

26.

Cây AVL là gì?

a)

Cây nhị phân mà tất cả các node có tối đa 2 con

b)

Cây nhị phân tìm kiếm có thể không cân bằng

c)

Cây nhị phân tìm kiếm với độ lệch chiều cao không quá 1 tại mọi node

d)

Cây nhị phân có độ sâu bằng nhau ở tất cả các lá

27.

Sau khi chèn 50, 40, 60, 30 vào cây AVL, phép quay nào sẽ xảy ra?

a)

Không cần quay

b)

Quay phải đơn

c)

Quay trái đơn

d)

Quay phải-trái kép

28.

Đoạn mã dưới đây đại diện cho thao tác gì trong cây AVL? if (balance > 1 && key < node->left->key) return rightRotate(node);

a)

Trường hợp Left Right

b)

Trường hợp Right Left

c)

Trường hợp Left Left

d)

Trường hợp Right Right

29.

Sau khi xóa một node trong cây AVL, có thể cần thực hiện:

a)

Chỉ quay phải

b)

Chỉ quay trái

c)

Một hoặc nhiều phép quay để cân bằng lại

d)

Không bao giờ cần quay

30.

Cây AVL với 15 nút có chiều cao nhỏ nhất là:

a)

3

b)

4

c)

5

d)

6

31.

Khi tìm kiếm trong BST, nếu cây bị mất cân bằng nghiêm trọng (toàn bộ node về một phía), độ phức tạp là:

a)

O(log n)

b)

O(1)

c)

O(n)

d)

O(n log n)

32.

Đoạn mã dưới đây làm gì? if (key < root->key) root->left = deleteNode(root->left, key); else if (key > root->key) root->right = deleteNode(root->right, key); else { // xử lý node cần xóa }

a)

Tìm kiếm node trong AVL

b)

Tìm kiếm node trong heap

c)

Xóa node trong BST

d)

Xóa node trong cây đỏ-đen

33.

Sau khi chèn 10, 5, 15, 3, 7, 12, 18 vào cây BST, kết quả duyệt theo thứ tự giữa (in-order) là:

a)

3 5 7 10 12 15 18

b)

10 5 3 7 15 12 18

c)

3 7 5 10 12 15 18

d)

3 5 10 7 12 15 18

34.

BST có 7 node và chiều cao bằng 6. Câu nào sau đây đúng?

a)

Cây là cân bằng

b)

Cây có thể là AVL

c)

Cây bị lệch hoàn toàn

d)

Cây đầy đủ

35.

Một cây nhị phân có 5 mức. Số node tối đa mà cây có thể có là:

a)

16

b)

31

c)

32

d)

63

36.

Với cây nhị phân đầy đủ (full binary tree), nếu có 20 node lá thì số node không lá là:

a)

10

b)

15

c)

19

d)

20

37.

Duyệt cây theo thứ tự level-order (từng mức từ trái sang phải) có thể được thực hiện bằng:

a)

Stack

b)

Queue

c)

Recursion

d)

DFS

38.

Với cây sau, thứ tự duyệt tiền tự là?

a)

A B D E C

b)

D E B A C

c)

A C B D E

d)

D B E C A

39.

Cây nhị phân có n node. Số cạnh trong cây là:

a)

n - 1

b)

n

c)

n + 1

d)

n / 2

40.

Câu nào sau đây đúng với cây nhị phân hoàn chỉnh (complete binary tree)?

a)

Tất cả node đều có 2 con

b)

Node chỉ có bên trái hoặc bên phải

c)

Tất cả các mức (trừ mức cuối) được lấp đầy, và node ở mức cuối cùng được xếp từ trái sang

d)

Cây chỉ có node lá