MSSV:............................ Đ thi gm 3 trang Trang
1
TRƯNG ĐI HC CÔNG NGH THÔNG TIN
KHOA KHOA HC MÁY TÍNH
ĐỀ THI CUI K
HC K 2 – NĂM HC 2021 – 2022
Môn thi: Cu trúc d liu và gii thut
Mã lp: Các lp đại trà, cht lượng cao
Thi gian làm bài: 90 phút
(Sinh viên không được s dng tài liu)
Câu 1:
a. Hãy cho biết đ phc tp ca thut toán Insertion sort (chèn trc tiếp) theo định nghĩa
Big-O (O ln) (0.25 đim)
b. Viết hàm sp xếp mng 1 chiu gm N phn t gim dn vi thut toán Insertion sort
(0.75 đim)
c. Hãy cho biết dãy s s thay đổi qua tng bước như thế nào khi áp dng thut toán câu
1b, biết rng dãy s cho như sau: 3, 8, 4, 5, 9, 1, 2, 6 (1 đim)
Câu 2:
Cho dãy ký t như sau: R, E, T, A, V, X, L, G, S, I
Hãy thc hin các yêu cu sau:
a. V cây nh phân tìm kiếm bng cách thêm ln lượt tng ký t vào cây theo th t t trái
qua phi ca dãy ký t trên, biết rng giá tr ca tng ký t tương ng theo th t xut
hin ca ký t trong t đin (1 đim)
b. Cho biết kết qa duyt cây theo RNL, NRL (1 đim)
c. Hu ln lượt tng nút L, T, E, R trên cây, mi ln hu 1 nút v li cây ni tiếp theo như
th t hu (1 đim)
Câu 3:
Cho biết cây B-Tree bc 3 là mt cây tha mãn các tính cht sau:
Tt c node lá nm trên cùng mt mc
Tt c các node, tr node gc và node lá, có *ti thiu* 2 node con.
Tt c các node có *ti đa* 3 con
Tt c các node, tr node gc, có t 1 cho đến 2 khóa (keys)
Mt node không phi lá và có n khóa thì phi có n+1 node con.
Hãy thc hin các yêu cu sau:
3.1 Cho dãy s: 12, 17, 20, 23, 15, 11, 24, 13, 19, 22, 18, 21, 16. Hi khi ln lượt thêm các s
trong dãy theo th t t trái qua phi vào mt cây B-Tree bc 3 rng thì:
a. Các khóa nào khi thêm vào cây s làm phát sinh thao tác tách (split) node? (0.5 đim)
b. V cây B-Tree trước và sau khi thêm các khóa câu a (1 đim)
3.2 Cho cây B-Tree bc 3 như hình sau:
Hãy ln lượt tiến hành xóa các khóa sau khi cây: 13, 24, 19 và v cây B-Tree trước
và sau khi xóa mi khóa trên (0.5 đim)
Lưu ý khi xoá:
Khi khóa cn xóa (gi x) không nm node lá, chn khóa thế mng khóa giá
tr ln nht mà nh hơn x.
MSSV:............................ Đ thi gm 3 trang Trang
2
Thao tác nhường khoá (underflow) s được thc hin khi hai node lin k tng s
khóa >= 2. Khi mt node không còn đáp ng đủ s lưng khóa ti thiu, ưu tiên
thc hin underflow thay cho catenation (hp) thao tác này không làm thay đổi s
khóa ca node cha.
Khi 02 la chn node lin k để thc hin catenation, ưu tiên chn catenation gia
node b thiếu khóa vi node lin trước.
Câu 4:
Để vic tìm kiếm thông tin mt hàng được nhanh chóng, người ta dùng mt bng băm theo
phương pháp thăm dò, làm vic trên qun lý ca mt hàng. Mã qun lý này là mt con s
nguyên. Bng băm có:
- Hàm băm: h(key) = (key % M)
- Hàm băm li (hàm thăm dò): prob(key, i) = (h(key) + i*i + i) % M
Trong đó:
- key là giá tr khóa.
- i là mt s nguyên cho biết ln băm li (thăm dò) th i.
- M là kích thước bng băm.
Gi s M = 7, cho trường hp T ca bng băm đã cha d liu như bên dưới. Biết -” ký
hiu v trí trng trong bng băm.
Bng băm T
0
-
1
-
2
16
3
-
4
-
5
12
6
13
a. Trình bày tng bước vic tìm mã qun lý 23 trong bng băm T. (0.5 đim)
b. Trình bày tng bước vic thêm các qun lý sau vào bng băm T theo đúng th t
lit kê là 11, 20, 27 (1.5 đim).
Câu 5:
Trong các ng dng thc tế, chng hn trong mng lưới giao thông đường b, đường thy
hoc đường hàng không, người ta không ch quan tâm đến vic tìm đường đi gia hai địa
đim còn phi la chn mt hành trình tiết kim nht (theo tiêu chun không gian, thi
gian hay chi phí). Vn đề này th được hình hóa thành mt bài toán trên đồ th, trong
đó mi địa đim được biu din bi mt đnh, cnh ni hai đỉnh biu din cho “đường đi trc
tiếp” gia hai địa đim (tc không đi qua địa đim trung gian) và trng s ca cnh là khong
cách gia hai địa đim.
Bài toán th phát biu dưới dng tng quát như sau: Cho mt đơn đồ th hướng
trng s dương G=(V,E), trong đó V tp đỉnh, E tp cnh (cung) các cnh đều
trng s, hãy tìm mt đường đi (không đỉnh lp li) ngn nht t đỉnh xut phát S thuc V
đến đỉnh đích F thuc V.
Gi s thông tin đầu vào ca bài toán (Input) được nhp vào chương trình như sau:
Gii thích
- Dòng đầu tiên cha mt s nguyên dương e cho biết s cnh ca đồ th
- Vi e dòng tiếp theo, mi dòng cha hai chui u, i mt s nguyên
dương x, th hin thông tin mt cnh ni t đỉnh u sang đỉnh i trong
MSSV:............................ Đ thi gm 3 trang Trang
3
đồ th vi độ dài (trng s) là x
- Dòng cui cùng cha hai chui s f, đây đỉnh bt đu đỉnh kết
thúc ca đường đi cn tìm
Lưu ý: không biết trước s đỉnh và danh sách các đỉnh.
Hãy thc hin các yêu cu sau:
a. Xây dng các cu trúc d liu phù hp nht th để biu din đồ th trên máy tính
theo input đã cho. (0.5 đim)
Cu trúc đưc xem tt nếu đạt được các tiêu chun sau: Tiết kim tài nguyên; H
tr mt s thao c cơ bn nhưKim tra hai đỉnh có k nhau không”, “Tìm danh sách
các đỉnh k vi mt đỉnh cho trướcvi ràng buc không phi duyt qua danh sách
tt c các cnh ca đồ th.
b. Viết hàm nhp theo Input đầu bài lưu tr thông tin ca đồ th vào cu trúc d liu
đã đề xut câu a. (0.5 đim)
*** KHÔNG YÊU CU tìm cách gii cho bài toán này. Sinh viên ĐƯỢC PHÉP s
dng Standard Template Library-STL vi nhng cu trúc d liu (vector, stack, queue,
list, map, set, pair, …) cũng như gii thut được xây dng sn.
Hết
MSSV:............................ Đ thi gm 3 trang Trang
4
Duyt đề Ging viên ra đề