1. Trang chủ
  2. » Tất cả

Đề thi cấu trúc dữ liệu và giải thuật dsa 151 khmt solution

7 5 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cấu trúc dữ liệu và giải thuật
Tác giả TS. Lương Thế Nhân
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Kỹ thuật máy tính
Thể loại Đề kiểm tra
Năm xuất bản 2015-2016
Thành phố Hồ Chí Minh
Định dạng
Số trang 7
Dung lượng 215,09 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA Họ tên KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH MSSV ————————————————— ĐỀ KIỂM TRA HỌC KỲ 1 NIÊN KHÓA 2015 2016 Chuyên ngành Kỹ thuật máy tính Môn thi Cấu trúc dữ liệu và giải thuật[.]

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA Họ tên:

—————————————————

ĐỀ KIỂM TRA HỌC KỲ 1 - NIÊN KHÓA 2015-2016

Chuyên ngành: Kỹ thuật máy tính

Môn thi: Cấu trúc dữ liệu và giải thuật Ngày thi: 22/12/2015 Thời gian làm bài: 120 phút

Đề thi số: 1511 Đề thi gồm 5 trang Được phép dùng tài liệu viết tay trên 1 tờ A4

Sinh viên phải ghi họ tên và mã số sinh viên vào đề thi Sinh viên phải nộp lại đề thi

Phần I: TRẮC NGHIỆM Sinh viên làm trên đề thi bằng cách gạch chéo câu trả lời đúng nhất

Phần II: ĐIỀN CHỖ TRỐNG Sinh viên làm trực tiếp trên đề thi

Phần III: VIẾT CHƯƠNG TRÌNH Sinh viên làm trên giấy thi

I Các câu hỏi trắc nghiệm (4 điểm)

Câu 1 Cho đoạn chương trình:

i=s=0;

while (s < n) {

i++;

s+=i; }

}

Đoạn chương trình trên có độ phức tạp (Big-O) là:

D O(√

n) Câu 2 Cho hàm:

int foo(int n) {

if(n <= 0) return 0;

else if(n % 2 == 0) return foo(n - 1) + foo(n - 2) + n;

else return 2 * foo(n - 1) + 1;

}

Lời gọi hàm foo(8) trả về kết quả bằng:

D 0 Câu 3 Một mảng có n phần tử, khi xóa phần tử thứ i − 1 (1 ≤ i ≤ n), thì cần phải di chuyển bao nhiêu phần tử: 

D i Câu 4 Giá trị của biểu thức tiền tố + + / + 14 6 20 ∗ 3 / 8 2 3 bằng 

D Biểu thức không hợp lệ Câu 5 Độ cao nhỏ nhất của một cây nhị phân có 179 nút là 

D 79 Câu 6 Số nút trong cây nhị phân đầy đủ có 10 mức là 

D 1024 Câu 7 Cho cây như hình vẽ dưới đây:

A

Duyệt hậu thứ tự (postorder traversal) sẽ cho kết quả:

B B C D E F G H I J K A

D B D E G H I C F J K A

Trang 2

Câu 8 Cho biết những nhận định nào sau đây là SAI về cây AVL

1) Cây AVL là cây tìm kiếm nhị phân (Binary Search Tree)

2) Cây AVL là cây cân bằng

3) Cây AVL là cây đầy đủ hoặc gần đầy đủ

B Nhận định 2 sai

D Không có nhận định nào sai Câu 9 Cho biết những nhận định nào sau đây là ĐÚNG về cây B (B-Tree) bậc m

1) Mỗi nút (ngoại trừ nút lá) phải có ít nhất 2 cây con không rỗng

2) Mỗi nút có nhiều nhất m - 1 dữ liệu

3) Tất cả nút lá nằm trên cùng một mức

B Chỉ có 2 và 3 đúng

D Chỉ có 1 và 2 đúng Câu 10 Sắp xếp dãy (3, 44, 38, 5, 27, 2, 19) theo thứ tự tăng dần, dãy số biến đổi như sau trong quá trình sắp xếp:

(3, 44, 38, 5, 27, 2, 19) → (2, 3, 44, 38, 5, 27, 19) → (2, 3, 5, 44, 38, 19, 27) → (2, 3, 5, 19, 44, 38, 27) → (2, 3,

5, 19, 27, 44, 38) → (2, 3, 5, 19, 27, 38, 44)

Hãy cho biết phương pháp sắp xếp nào được sử dụng:

A Sắp xếp lựa chọn đơn giản (Straight Selection Sort) 

D Sắp xếp chèn đơn giản (Straight Insertion Sort) Câu 11 Cho dãy số (5, 12, 20, 26, 37, 42, 46, 50, 64), nếu sử dụng tìm kiếm nhị phân, khi tìm phần tử có giá trị 26 cần

phải thực hiện bao nhiêu phép so sánh?

D 5 Câu 12 Giả sử dùng dãy số để biểu diễn heap (max-heap), hãy cho biết trong những dãy số dưới đây, dãy nào là biểu

diễn của một heap:

A 5, 34, 83, 55, 2, 35, 17, 61, 28, 20, 95, 7, 27

B 95, 83, 35, 55, 61, 34, 17, 5, 28, 2, 20, 7, 27

C 2, 35, 17, 61, 20, 28, 7, 27, 95, 5, 34, 83, 55

D 2, 5, 7, 17, 20, 27, 28, 34, 35, 55, 61, 83, 95

Câu 13 Bảng băm (hash table) có kích thước m = 13, không gian địa chỉ là [0 12], hàm băm (hash function) h(k) =

k % 13, sử dụng phương pháp thăm dò bình phương (quadratic probing) để giải quyết đụng độ Giả sử bảng băm đã có 3 phần tử là 141414, 141424, 141425 Muốn chèn thêm phần tử có giá trị 141440 vào bảng băm, vậy địa chỉ của phần tử này là:

D 3 Câu 14 Đưa 5 phần tử dữ liệu vào bảng băm trống có dung lượng 500000 phần tử, hãy cho biết nhận định nào dưới đây

ĐÚNG

C Chắc chắn không xảy ra xung đột vì dung lượng bảng băm quá lớn 

D Cả A, B, C đều sai Câu 15 Cho đồ thị liên thông G với tập các đỉnh là V = (A, B, C, D, E, F ), tập các cạnh là E =

(A, B), (A, E), (A, C), (B, E), (E, D), (D, F ), (F, C) Từ đỉnh A, tiến hành duyệt đồ thị theo chiều sâu, ta sẽ được kết quả (Lưu ý, trong trường hợp nhiều đỉnh có thể được chọn, duyệt theo thứ tự trong bảng chữ cái.)

D A E D F C B Câu 16 Cho đồ thị có hướng DG = (V, E) với tập các đỉnh V = (V1, V2, V3, V4, V5, V6, V7), tập các cạnh là E =

(V1, V2), (V1, V3), (V1, V4), (V2, V5), (V3, V5), (V3, V6), (V4, V6), (V5, V7), (V6, V7), thứ tự Topo của đồ thị này là:

A V1, V3, V4, V6, V2, V5, V7 

B V1, V3, V2, V6, V4, V5, V7 

C V1, V3, V4, V5, V2, V6, V7 

D V1, V2, V5, V3, V4, V6, V7

Trang 3

II Điền vào chỗ trống (3 điểm)

Câu 17 Hãy nêu ưu điểm của cây tìm kiếm nhị phân (binary search tree) so với danh sách liên kết (linked list)

- Việc tìm kiếm dữ liệu được thao tác nhanh chóng hơn danh sách liên kết với

Câu 18 Chuyển đổi biểu thức trung tố (infix expression) sau sang dạng tiền tố (prefix):

(A + B * (C - D)) * E - F * G

- * + A * B - C D E * F G

Câu 19 Giả sử dùng 1 stack S và 1 queue Q để chứa các số nguyên Hãy vẽ hình ảnh của S và Q sau

khi thực hiện các thao tác sau:

S = Stack(15, 12, 6, 30)

Q = Queue(8, 12)

Câu 20 Cho cây nhị phân có 10 nút Duyệt tiền thứ tự (preorder) cho kết quả JCBADEFIGH, duyệt

trung thứ tự (inorder) cho kết quả ABCEDFJGIH Hãy vẽ cây đó.

J

Câu 21 Hãy vẽ cây tìm kiếm nhị phân (BST) bằng cách chèn lần lượt các giá trị sau:

24, 18, 10, 57, 36, 12, 31, 83, 76, 28 (chỉ cần vẽ kết quả cuối cùng)

24

28

Trang 4

Câu 22 Cây kết quả của câu trên (câu 21) có phải là cây AVL không? Tại sao?

Không, nút 18 và nút 36 mất cân bằng

Câu 23 Nếu cây kết quả của câu 21 không phải cây AVL, thì cân bằng lại cây BST đó thành cây AVL (vẽ cây AVL vào

ô trống) Nếu cây kết quả của câu 21 là cây AVL thì bỏ qua bước này Sau đó, chèn vào cây AVL thêm một nút

có giá trị là 32 và tái cân bằng lại cây nếu cần thiết (chỉ cần vẽ kết quả cuối cùng)

24

31

Câu 24 Xây dựng heap (max-heap) từ dãy số sau: 6, 68, 46, 1, 14, 57, 67, 53, 2 (có thể vẽ heap dưới dạng cây nhị phân

hoặc biểu diễn dưới dạng mảng, chỉ cần ghi lại kết quả cuối cùng)

68, 53, 67, 14, 6, 46, 57, 1, 2

Cho đồ thị có hướng như sau, được sử dụng cho 2 câu 25 và 26:

A

B

E

C

F

D

G

I

H

Câu 25 Cho biết kết quả duyệt theo chiều rộng của đồ thị trên, biết rằng bắt đầu duyệt từ đỉnh A Lưu ý, trong trường

hợp nhiều đỉnh có thể được chọn, duyệt theo thứ tự trong bảng chữ cái.A B E C F D G H I

Câu 26 Hãy xác định một thứ tự topo của đồ thị trên

A B E C F D G I H

Câu 27 Tìm cây khung nhỏ nhất (MST) của đồ thị sau (chỉ cần vẽ lại kết quả cuối cùng là cây khung)

Trang 5

A

B

C

D

E

F

G

H

10 10

14

11 6 8

5 2 7 3

4

8 6

S

A

B

C

D

E

F

G

H

10

10

3

4

Câu 28 Cho biết tổng trọng số của cây khung tìm được trong câu 27 là bao nhiêu?41

III Viết chương trình (4 điểm) Sinh viên làm trên giấy thi.

Sinh viên phải trình bày ý tưởng của chương trình bằng cách viết các bình luận (comments) trên mỗi đoạn code của chương trình Chọn một ngôn ngữ (C hoặc C++) để thực hiện Có thể dùng pseudocode

Một nhà thuốc muốn quản lý các thông tin liên quan đến kho dự trữ thuốc chữa bệnh bằng máy tính Chúng tôi đề nghị các bạn biểu diễn những thông tin này dưới dạng một danh sách liên kết mà mỗi phần tử chứa tên thuốc, số lượng thuốc (số hộp) và đơn giá thuốc

Ví dụ:

Paracetamol 8 hộp 15000đ Menthol 20 hộp 10000đ Aspirine 10 hộp 20000đ

Cấu trúc dữ liệu được đề nghị là:

struct Pharma {

string name;

int quantity;

int price;

Pharma * link;

};

struct Stock {

Pharma * head;

};

Câu 29 Hãy hiện thực một phương thức (method) sell(string med, int nb) cho phép bán nb hộp thuốc med nếu có

thể (đủ số lượng trong kho) (1 điểm)

Câu 30 Hãy hiện thực một phương thức (method) buy(string med, int nb, int price) cho phép nhập vào kho nb

hộp thuốc med với đơn giá price Chú ý: nếu còn thuốc tồn kho thì hàng tồn kho cũng sẽ được bán theo giá mới (1 điểm)

Trang 6

Câu 31 Hãy hiện thực một hàm (function) stockPrice() trả về tổng giá trị của kho hàng thuốc (1 điểm)

Câu 32 Bonus:

Sau khi sử dụng chương trình ở trên, nhà thuốc tây cảm thấy chương trình thực thi không được nhanh lắm Bạn hãy đề xuất một phương án để hiện thực lại chương trình sao cho chương trình mới chạy nhanh hơn Chỉ

ra cấu trúc dữ liệu mới và giải thích (1 điểm)

Trang 7

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

—————————————————

ĐÁP ÁN ĐỀ THI KIỂM TRA HỌC KỲ 1 - NIÊN KHÓA 2015 - 2016

Chuyên ngành: Kỹ thuật Máy tính Môn thi: Cấu trúc dữ liệu và giải thuật Thời gian làm bài: 120 phút

 Không được phép dùng tài liệu  Được phép dùng tài liệu viết tay trên 1 tờ A4

Đề thi số: 1511

I Các câu hỏi trắc nghiệm (4 điểm)

Câu 1 

D

Câu 2 

C

Câu 3 

A

Câu 4 

A Câu 5 

C Câu 6 

C

Câu 7 

C Câu 8 

C Câu 9 

A

Câu 10 

B Câu 11 

C Câu 12 

B

Câu 13 

B Câu 14 

B Câu 15 

A

Câu 16 

A

II Điền vào chỗ trống (3 điểm)

Câu 17

Câu 18

Câu 19 Câu 20

Câu 21 Câu 22

Câu 23 Câu 24

Câu 25 Câu 26

Câu 27 Câu 28

III Viết chương trình (4 điểm) Sinh viên làm trên giấy thi.

Ngày đăng: 25/03/2023, 08:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w