wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Ôn tập Cấu trúc dữ liệu & Giải thuật (No Graph)

Total questions: 36

Worksheet time: 18mins

Name
Class
Date
1.

Trong phân tích độ phức tạp thuật toán, ký hiệu O(n) có nghĩa là gì?

a)

Thời gian thực thi tăng tuyến tính theo kích thước đầu vào

b)

Thời gian thực thi luôn cố định

c)

Thuật toán luôn chạy nhanh hơn O(log n)

d)

Bộ nhớ sử dụng giảm theo kích thước đầu vào

2.

Ưu điểm chính của mảng (array) là gì?

a)

Truy cập phần tử bất kỳ nhanh, O(1)

b)

Thêm/xóa phần tử giữa mảng nhanh

c)

Tiết kiệm bộ nhớ khi dữ liệu thay đổi nhiều

d)

Luôn lưu trữ dữ liệu theo dạng cây

3.

Nhược điểm lớn nhất của mảng so với danh sách liên kết là gì?

a)

Truy cập phần tử đầu chậm

b)

Chèn/xóa giữa mảng tốn nhiều chi phí

c)

Không thể lưu dữ liệu dạng số

d)

Mảng không hỗ trợ duyệt tuần tự

4.

Ứng dụng thực tế thường dùng ngăn xếp (stack) là gì?

a)

Hệ thống xử lý hàng chờ tại quầy vé

b)

Quản lý lời gọi hàm trong chương trình

c)

Tìm đường đi ngắn nhất trong đồ thị

d)

Tìm kiếm nhị phân

5.

Đặc điểm chính của queue là gì?

a)

Last In First Out (LIFO)

b)

First In First Out (FIFO)

c)

Dữ liệu luôn được sắp xếp tăng dần

d)

Chỉ lưu trữ kiểu số nguyên

6.

Trong hệ thống in tài liệu, để đảm bảo công bằng, cấu trúc dữ liệu phù hợp nhất để quản lý tài liệu chờ in là gì?

a)

Stack

b)

Queue

c)

Hash Table

d)

Binary Search Tree

7.

Trong Python, chuỗi (string) có đặc điểm gì?

a)

Có thể thay đổi từng ký tự trực tiếp

b)

Không thể thay đổi (immutable)

c)

Luôn được lưu dạng danh sách liên kết

d)

Chỉ lưu được ký tự chữ cái, không lưu số

8.

Độ phức tạp thời gian của việc nối chuỗi s1 + s2 (dài m và n) trong Python là gì?

a)

O(1)

b)

O(m + n)

c)

O(log(m+n))

d)

O(mn)

9.

Điểm mạnh lớn nhất của hash table so với array là gì?

a)

Lưu trữ dữ liệu tuần tự

b)

Tìm kiếm phần tử theo key chỉ mất O(1)

c)

Không bao giờ xảy ra va chạm (collision)

d)

Dùng ít bộ nhớ hơn mảng

10.

Ưu điểm chính của linked list so với array là gì?

a)

Truy cập phần tử nhanh

b)

Thêm/xóa linh hoạt ở giữa danh sách

c)

Dễ dàng sắp xếp

d)

Bộ nhớ sử dụng luôn nhỏ hơn

11.

Nhược điểm của linked list so với array là gì?

a)

Không thể thêm/xóa

b)

Không thể duyệt tuần tự

c)

Truy cập ngẫu nhiên tốn O(n)

d)

Không thể lưu số nguyên

12.

Điểm yếu chính của đệ quy so với vòng lặp là gì?

a)

Không thể giải bài toán tìm kiếm

b)

Thường tốn nhiều bộ nhớ stack hơn

c)

Không thể dừng

d)

Không thể áp dụng cho cây nhị phân

13.

Đặc điểm của cây nhị phân là gì?

a)

Mỗi nút có nhiều con

b)

Mỗi nút có tối đa 2 con

c)

Tất cả nút đều có đủ 2 con

d)

Chỉ lưu trữ số nguyên

14.

Ứng dụng thực tế thường dùng cây nhị phân là gì?

a)

Lưu trữ từ điển trong trình soạn thảo

b)

Quản lý hàng chờ

c)

Xử lý undo/redo

d)

Lưu chuỗi ký tự

15.

Trong BST, để tìm giá trị nhỏ nhất ta nên duyệt theo hướng nào?

a)

Đi hết nhánh phải

b)

Đi hết nhánh trái

c)

Đi theo thứ tự In-order

d)

Đi theo BFS

16.

Điểm yếu của BST khi dữ liệu được chèn theo thứ tự tăng dần là gì?

a)

Tạo ra cây cân bằng

b)

Cây trở thành dạng danh sách liên kết, mất lợi thế O(log n)

c)

Không thể tìm kiếm

d)

Luôn tạo ra vòng lặp vô hạn

17.

Trong min-heap, giá trị nào luôn nằm ở gốc (root)?

a)

Giá trị lớn nhất

b)

Giá trị nhỏ nhất

c)

Giá trị trung bình

d)

Bất kỳ giá trị nào

18.

Để cài đặt priority queue hiệu quả nhất, ta nên dùng gì?

a)

Array

b)

Linked List

c)

Heap

d)

Stack

19.

Thuật toán sắp xếp nào có độ phức tạp trung bình tốt nhất trong các lựa chọn sau?

a)

Bubble Sort

b)

Insertion Sort

c)

Quick Sort

d)

Selection Sort

20.

Điểm yếu lớn nhất của Quick Sort là gì?

a)

Không bao giờ chạy nhanh hơn O(n²)

b)

Trường hợp xấu nhất O(n²) nếu chọn pivot kém

c)

Tốn bộ nhớ nhiều hơn Merge Sort

d)

Không thể áp dụng cho số âm

21.

Điều kiện để áp dụng Binary Search là gì?

a)

Dữ liệu dạng mảng đã được sắp xếp

b)

Dữ liệu bất kỳ trong linked list

c)

Dữ liệu dạng hash table

d)

Dữ liệu bất kỳ không cần sắp xếp

22.

Kết quả in ra là gì?

a)

1

b)

3

c)

4

d)

IndexError

23.

Kết quả in ra là gì?

a)

10

b)

20

c)

[10, 20]

d)

Error

24.

Kết quả in ra là gì?

a)

[1, 2]

b)

[2, 3]

c)

[1, 3]

d)

[3]

25.

Kết quả là gì?

a)

abc

b)

bca

c)

cab

d)

cba

26.

Kết quả đoạn code là gì?

a)

3

b)

6

c)

9

d)

Error

27.

Duyệt In-order cây sau in ra gì?

a)

1 2 3

b)

2 1 3

c)

3 2 1

d)

1 3 2

28.

Kết quả in ra là gì?

a)

1

b)

2

c)

3

d)

Error

29.

Trong max-heap, phần tử nào luôn nằm ở gốc (root)?

a)

Phần tử lớn nhất

b)

Phần tử nhỏ nhất

c)

Phần tử ở giữa

d)

Phần tử được thêm sau cùng

30.

Trong hệ thống cấp cứu bệnh viện, cấu trúc dữ liệu nào phù hợp nhất để xử lý bệnh nhân theo mức độ ưu tiên?

a)

Queue

b)

Stack

c)

Priority Queue

d)

Linked List

31.

Độ phức tạp thời gian khi chèn một phần tử vào heap là gì?

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n log n)

32.

Nếu cần sắp xếp một danh sách rất lớn và yêu cầu tốc độ cao, thuật toán nào thường được chọn?

a)

Bubble Sort

b)

Quick Sort

c)

Insertion Sort

d)

Linear Search

33.

Ưu điểm của Binary Search so với Linear Search là gì?

a)

Không cần dữ liệu sắp xếp

b)

Nhanh hơn trên dữ liệu lớn đã sắp xếp

c)

Tiết kiệm bộ nhớ hơn hash table

d)

Luôn chạy trong O(1)

34.

Kết quả chương trình là gì?

a)

[3, 1, 4, 2]

b)

[1, 2, 3, 4]

c)

[4, 3, 2, 1]

d)

Error

35.

Kết quả in ra là gì?

a)

(2, "task2")

b)

(1, "task1")

c)

["task1", "task2"]

d)

Error

36.

Kết quả in ra là gì?

a)

2

b)

3

c)

4

d)

-1