wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

ASD62

Total questions: 40

Worksheet time: 32mins

Name
Class
Date
1.

Danh sách liên kết đơn là gì?

a)
  • Một cấu trúc dữ liệu tuyến tính, trong đó mỗi phần tử được liên kết với phần tử tiếp theo bằng một con trỏ.

b)
  • Một cấu trúc dữ liệu tuyến tính, trong đó mỗi phần tử được liên kết với phần tử tiếp theo và phần tử trước đó bằng một con trỏ.

c)
  • Một cấu trúc dữ liệu không tuyến tính, trong đó mỗi phần tử được liên kết với phần tử tiếp theo bằng một con trỏ.

d)
  • Một cấu trúc dữ liệu không tuyến tính, trong đó mỗi phần tử được liên kết với phần tử tiếp theo và phần tử trước đó bằng một con trỏ.

2.

Phần tử đầu tiên của danh sách liên kết đơn được gọi là gì?

a)
  • Con trỏ đầu

b)
  • Con trỏ cuối

c)
  • Con trỏ trước

d)
  • Con trỏ sau

3.

Phần tử cuối cùng của danh sách liên kết đơn được gọi là gì?

a)
  • Con trỏ đầu

b)
  • Con trỏ cuối

c)
  • Con trỏ trước

d)
  • Con trỏ sau

4.

Để thêm một phần tử vào đầu danh sách liên kết đơn, ta thực hiện như thế nào?

a)
  • Tạo một nút mới và đặt con trỏ của nó trỏ đến con trỏ đầu hiện tại.

b)
  • Cập nhật con trỏ đầu thành con trỏ của nút mới.

c)
  • Thêm con trỏ của nút mới vào cuối danh sách.

d)
  • Cập nhật con trỏ cuối thành con trỏ của nút mới.

5.

Để xóa một phần tử khỏi stack, ta thực hiện như thế nào?

a)
  • Sử dụng hàm push()

b)
  • Sử dụng hàm pop()

c)
  • Sử dụng hàm peek()

d)
  • Sử dụng hàm top()

6.

Stack được sử dụng trong những ứng dụng nào?

a)
  • Tính tổng dãy số

b)
  • Sắp xếp dãy số

c)
  • Đệ quy

d)
  • Tất cả các đáp án trên

7.

Queue được sử dụng trong những ứng dụng nào?

a)
  • In hàng đợi

b)
  • Xử lý đa luồng

c)
  • Sắp xếp dãy số

d)
  • Tất cả các đáp án trên

8.

BFS là gì?

a)
  • BFS là thuật toán duyệt đồ thị theo thứ tự cấp độ.

b)
  • BFS là thuật toán duyệt đồ thị theo thứ tự chiều rộng.

c)
  • BFS là thuật toán duyệt đồ thị theo thứ tự chiều sâu.

d)
  • BFS là thuật toán duyệt đồ thị theo thứ tự vòng.

9.

Ưu điểm của BFS là gì?

a)
  • BFS là thuật toán duyệt đồ thị đơn giản và dễ hiểu.

b)
  • BFS có thể tìm ra đường đi ngắn nhất giữa hai đỉnh trong đồ thị có trọng số.

c)
  • BFS có thể tìm ra tất cả các đỉnh có thể đi tới từ một đỉnh trong đồ thị.

d)
  • Tất cả các đáp án trên đều đúng.

10.

Stack tuân thủ nguyên tắc nào?

a)

FIFO (First-In-First-Out)

b)

LIFO (Last-In-First-Out)

c)

LILO (Last-In-Last-Out)

d)

FILO (First-In-Last-Out)

11.

Khi một Stack đã đầy và bạn cố gắng thêm một phần tử khác, bạn sẽ gặp phải tình huống gì?

a)

Stack sẽ tự động mở rộng để chứa phần tử mới.

b)

Một phần tử ngẫu nhiên khỏi Stack sẽ bị xóa.

c)

Chương trình sẽ báo lỗi tràn ngăn xếp (Stack Overflow).

d)

Phần tử mới sẽ bị đặt ở cuối danh sách Stack.

12.

Kết quả duyệt cây theo thứ tự NLR (Tiền thứ tự) của BST sau đây:

a)

5, 3, 2, 4, 8, 6, 9

b)

2, 3, 4, 5, 6, 8, 9

c)

9, 8, 6, 5, 4, 3, 2

d)

2, 3, 4, 5, 6, 8, 9

13.

Kết quả duyệt cây theo thứ tự LRN (Hậu thứ tự) của BST sau đây:

a)

2, 5, 3, 8, 10, 9, 7

b)

7, 9, 10, 8, 5, 3, 2

c)

2, 3, 5, 7, 8, 9, 10

d)

10, 9, 8, 7, 5, 3, 2

14.

Kết quả duyệt cây theo thứ tự LNR (Trung thứ tự) của BST sau đây:

a)

1, 3, 5, 6, 7, 8, 9

b)

6, 3, 1, 5, 8, 7, 9

c)

1, 3, 5, 6, 7, 8, 9

d)

9, 8, 7, 6, 5, 3, 1

15.

Kết quả duyệt cây theo thứ tự LRN (Hậu thứ tự) của BST sau đây:

a)

6, 3, 9, 11, 10, 8

b)

3, 6, 8, 9, 10, 11

c)

11, 9, 6, 3, 10, 8

d)

8, 3, 6, 10, 9, 11

16.

Cho dãy số sau: [5, 3, 8, 2, 4, 6, 9]. Kết quả duyệt cây theo thứ tự NLR (Tiền thứ tự) là gì khi dãy số này được sử dụng để tạo BST?

a)

5, 3, 2, 4, 8, 6, 9

b)

2, 3, 4, 5, 6, 8, 9

c)

9, 8, 6, 5, 4, 3, 2

d)

2, 3, 4, 5, 6, 8, 9

17.

Cho dãy số sau: [7, 3, 9, 2, 5, 8, 10]. Kết quả duyệt cây theo thứ tự LRN (Hậu thứ tự) là gì khi dãy số này được sử dụng để tạo BST?

a)

2, 5, 3, 8, 10, 9, 7

b)

7, 9, 10, 8, 5, 3, 2

c)

2, 3, 5, 7, 8, 9, 10

d)

10, 9, 8, 7, 5, 3, 2

18.

Cho dãy số sau: [6, 3, 8, 1, 5, 7, 9]. Kết quả duyệt cây theo thứ tự LNR (Trung thứ tự) là gì khi dãy số này được sử dụng để tạo BST?

a)

1, 3, 5, 6, 7, 8, 9

b)

6, 3, 1, 5, 8, 7, 9

c)

1, 3, 5, 6, 7, 8, 9

d)

9, 8, 7, 6, 5, 3, 1

19.

Cho dãy số sau: [4, 2, 6, 1, 3, 5, 7]. Kết quả duyệt cây theo thứ tự NLR (Tiền thứ tự) là gì khi dãy số này được sử dụng để tạo BST?

a)

4, 2, 1, 3, 6, 5, 7

b)

1, 2, 3, 4, 5, 6, 7

c)

7, 6, 5, 4, 3, 2, 1

d)

1, 3, 2, 5, 7, 6, 4

20.

Cho dãy số sau: [8, 3, 10, 6, 9, 11]. Kết quả duyệt cây theo thứ tự LRN (Hậu thứ tự) là gì khi dãy số này được sử dụng để tạo BST?

a)

6, 3, 9, 11, 10, 8

b)

3, 6, 8, 9, 10, 11

c)

11, 9, 6, 3, 10, 8

d)

8, 3, 6, 10, 9, 11

21.

Nếu bạn đang duyệt một cây tìm kiếm nhị phân bằng BFS, thứ tự duyệt các nút sẽ như thế nào?

a)

Theo thứ tự tăng dần của giá trị nút.

b)

Theo thứ tự ngẫu nhiên.

c)

Theo thứ tự từ trái sang phải.

d)

Theo thứ tự từ phải sang trái.

22.

Thuật toán BFS thường sử dụng cấu trúc dữ liệu nào để theo dõi các nút chờ duyệt?

a)

Stack.

b)

Queue.

c)

Heap.

d)

Set.

23.

Trong một đồ thị vô hướng, nếu bạn thực hiện BFS từ một nút xuất phát, thì thứ tự duyệt các nút láng giềng của nút gốc sẽ như thế nào?

a)

Ngẫu nhiên.

b)

Theo thứ tự mà bạn thêm chúng vào hàng đợi.

c)

Theo thứ tự từ phải sang trái.

d)

Theo thứ tự từ trên xuống dưới.

24.

Thuật toán Prim được sử dụng để làm gì trong lý thuyết đồ thị?

a)

Tạo cây tìm kiếm nhị phân.

b)

Tạo cây khung tối thiểu trong đồ thị.

c)

Duyệt đồ thị theo chiều rộng.

d)

Duyệt đồ thị theo chiều sâu.

25.

Trong thuật toán Prim, điểm xuất phát cho việc tạo cây khung tối thiểu là gì?

a)

Đỉnh đầu tiên của đồ thị.

b)

Đỉnh có bậc lớn nhất trong đồ thị.

c)

Đỉnh được chọn bất kỳ.

d)

Đỉnh thấp nhất theo một tiêu chí cụ thể.

26.

Trong thuật toán Prim, cây khung tối thiểu được xây dựng như thế nào?

a)

Bắt đầu từ đỉnh ban đầu và thêm một cạnh vào cây trong mỗi bước sao cho cạnh có trọng số nhỏ nhất.

b)

Bắt đầu từ đỉnh ban đầu và thêm một đỉnh vào cây trong mỗi bước sao cho đỉnh có bậc lớn nhất.

c)

Bắt đầu từ đỉnh ban đầu và loại bỏ một cạnh trong mỗi bước sao cho cạnh có trọng số lớn nhất.

d)

Bắt đầu từ đỉnh ban đầu và thêm một đỉnh vào cây trong mỗi bước sao cho đỉnh có bậc nhỏ nhất.

27.

Thuật toán Prim được sử dụng trong loại nào trong lý thuyết đồ thị?

a)

Duyệt theo chiều rộng.

b)

Tìm kiếm đường đi ngắn nhất.

c)

Tạo cây khung tối thiểu.

d)

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

28.

Trong thuật toán Prim, quá trình xây dựng cây khung tối thiểu dừng khi nào?

a)

Khi tất cả các đỉnh đã được thêm vào cây.

b)

Khi cây đã chứa n-1 cạnh, với n là số đỉnh trong đồ thị.

c)

Khi tất cả các đỉnh đã được duyệt qua.

d)

Khi tất cả các cạnh đã được xem xét.

29.

Trong thuật toán Kruskal, quá trình xây dựng cây khung tối thiểu dừng khi nào?

a)

Khi tất cả các đỉnh đã được thêm vào cây.

b)

Khi cây đã chứa n-1 cạnh, với n là số đỉnh trong đồ thị.

c)

Khi tất cả các đỉnh đã được duyệt qua.

d)

Khi tất cả các cạnh đã được xem xét.

30.

Trong thuật toán Kruskal, cạnh nào được thêm vào cây khung tối thiểu trong mỗi bước?

a)

Cạnh có trọng số nhỏ nhất chưa nằm trong cây.

b)

Cạnh có trọng số lớn nhất chưa nằm trong cây.

c)

Cạnh kết nối với đỉnh gốc.

d)

Cạnh ngẫu nhiên trong đồ thị.

31.

Thuật toán Dijkstra được sử dụng để làm gì trong lý thuyết đồ thị?

a)

Tìm đường đi Euler trong đồ thị.

b)

Tìm chu trình Hamilton trong đồ thị.

c)

Tìm đường đi ngắn nhất giữa hai đỉnh trong đồ thị có trọng số.

d)

Tạo cây khung tối thiểu trong đồ thị.

32.

Trong thuật toán Dijkstra, làm thế nào để xác định đỉnh tiếp theo được thêm vào tập đỉnh đã xử lý?

a)

Chọn đỉnh gốc.

b)

Chọn đỉnh có khoảng cách ngắn nhất.

c)

Chọn đỉnh chưa được duyệt có khoảng cách ngắn nhất.

d)

Chọn đỉnh cuối cùng trong danh sách đỉnh.

33.

Trong thuật toán Dijkstra, đỉnh gốc có khoảng cách từ chính nó là bao nhiêu?

a)

0

b)

1

c)

Vô cùng

d)

-1

34.

Trong thuật toán Dijkstra, nếu trọng số của các cạnh trong đồ thị không âm (không có cạnh có trọng số âm), thuật toán sẽ hoạt động như thế nào?

a)

Không hoạt động.

b)

Tìm đường đi ngắn nhất đúng cách.

c)

Dừng ngay lập tức.

d)

Tìm đường đi ngắn nhất, nhưng không chắc chắn về tính đúng đắn.

35.

Trong thuật toán Bellman-Ford, làm thế nào để xác định xem một đỉnh có trọng số âm trong đồ thị?

a)

Đoạn đường đi từ đỉnh gốc đến đỉnh đó có độ dài lớn hơn 0.

b)

Sử dụng thuật toán Dijkstra để kiểm tra.

c)

Tìm chu trình âm trong đồ thị.

d)

Kiểm tra đường đi ngắn nhất đã tính toán tới đỉnh đó sau mỗi vòng lặp.

36.

Trong thuật toán Bellman-Ford, chi phí tính toán đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh khác là bao nhiêu?

a)

O(n)

b)

O(n^2)

c)

O(m)

d)

O(mn)

37.

Khi sử dụng thuật toán Bellman-Ford để tìm đường đi ngắn nhất, đường đi ngắn nhất được cập nhật bao nhiêu lần?

a)

Lớn hơn hoặc bằng 1.

b)

Chính xác 1.

c)

Không giới hạn.

d)

Tùy thuộc vào đồ thị.

38.

Khi nào bạn nên sử dụng thuật toán Bellman-Ford thay vì thuật toán Dijkstra để tìm đường đi ngắn nhất trong đồ thị có trọng số?

a)

Khi đồ thị chứa chu trình có trọng số âm.

b)

Khi đồ thị không có cạnh âm.

c)

Khi bạn chỉ muốn tìm đường đi giữa hai đỉnh cụ thể.

d)

Khi đồ thị là một cây nhị phân tìm kiếm.

39.

Thuật toán Bellman-Ford sử dụng một mảng để lưu trữ gì?

a)

Khoảng cách ngắn nhất từ nguồn đến tất cả các đỉnh.

b)

Trọng số của từng cạnh trong đồ thị.

c)

Thứ tự đỉnh trong đường đi ngắn nhất.

d)

Số đỉnh kết nối với mỗi đỉnh.

40.

Trong cấu trúc dữ liệu danh sách liên kết đơn, việc truy cập một phần tử ở vị trí bất kỳ có độ phức tạp bao nhiêu?

a)

O(1)

b)

O(log n)

c)

O(n)

d)

O(n^2)