Đề thi cuối kỳ học kỳ 2 Cấu trúc dữ liệu | Trường Đại học CNTT Thành Phố Hồ Chí Minh

Đề thi cuối kỳ học kỳ 2 Cấu trúc dữ liệu | Trường Đại học CNTT Thành Phố Hồ Chí Minh được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

MSSV:............................ m 3 trang Trang Đề thi g
1
TRƯNG ĐẠI HCNG NGH THÔNG TIN
KHOA KHOA H C MÁY TÍNH
ĐỀ THI CUI K
HC K 2 – N M H C 2021 – 2022 Ă
Môn thi: C u trúc d u và gi i thu t li
Mã l p: Các l p i trà, ch t l ng cao đạ ượ
Thi gian làm bài: 90 phút
(Sinh viên không c s d ng tài li u) đượ
Câu 1:
a. Hãy cho bi ph p c a thu t toán Insertion sort (chèn tr p) theo nh ngh a ết độ c t c tiế đị ĩ
Big-O (O l n) (0.25 đim)
b. Viết hàm s p x p m ng 1 chi u g m N ph n t gi n v i thu oán Insertion sort ế m d t t
(0.75 đim)
c. Hãy cho bi t dãy s s thay qua t ng b c nh th nào khi áp d ng thu t toán câu ế đổi ướ ư ế
1b, bi t r ng 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 th c hi n các yêu c u sau:
a. V ế cây nh phân tìm ki m b t tng cách thêm l n l ượ ng ký t vào cây theo th t t trái
qua ph trên, bi ng giá tr c t ng ng theo th t xui ca dãy k tý ết r a tng k tý ươ t
hi i in c trong t a k tý đ n (1 đ m)
b. i Cho bi t k t q a duy t cây theo RNL, NRL (1 ế ế đ m)
c. Hu ượ l n l t t i l i ting nút L, T, E, R trên cây, m n hu 1 nút v l i cây n ếp theo nh ư
th m) đ t hu (1 i
Câu 3:
Cho bi t cây B-Tree b c 3 là m t cây a mãn các tính ch t sau: ế th
Tt c node lá n m trên cùng m t m c
Tt c các node, tr node g c và node lá, có *ti thiu* 2 node con.
Tt c các node có *t a*i đ 3 con
Tt c các node, tr node g c, có t 1 cho n 2 khóa (keys) đế
Mt node không ph i lá và có n khóa thì ph i có n+1 node con.
Hãy th c hi n các yêu c u sau:
3.1 Cho dãy s : 12, 17, 20, 23, 15, 11, 24, 13, 19, 22, 18, 21, 16. H i khi l n l t thêm các s ượ
trong dãy theo th t t trái qua ph i vào m t cây B-Tree b c 3 r ng thì:
a. cây Các khóa nào khi thêm vào s làm phát sinh thao tác tách (split) node? (0.5 m) đi
b. i V cây B-Tree tr c và sau khi thêm các khóa câu a (1 ướ đ m)
3.2 Cho cây B-Tree b c 3 nh hình sau: ư
Hãy l n l n hành xóa các khóa sau kh i cây: 13, 24, 19 và v cây B-Tree tr ượt tiế ước
và sau khi xóa m i khóa trên (0.5 m) đi
Lưu khi xoá: ý
Khi khóa c n xóa (g i là x) không n node lá, ch n khóa th m ng là khóa có giá m ế
tr ơ l n nh t mà nh h n x.
MSSV:............................ m 3 trang Trang Đề thi g
2
Thao tác nh ng khoá (underflow) s c hi n khi hai node li n k t ng s ườ được th
khóa >= 2. Khi m t node không còn áp ng s ng khóa t i thi u, u tiên đ đủ lượ ư
th đổc hi n underflow thay cho catenation (h p) thao tác này không làm thay i s
khóa c a node cha.
Khi có 02 l n node li n k c hi n catenation, u tiên ch n catenation gia ch để th ư a
node b thi u khóa v i node li n tr c. ế ướ
Câu 4:
Để ế vi c tìm ki m thông tin mt hàng đượ ườ ăc nhanh chóng, ng i ta dùng m t b ng b m theo
phương pháp th m dò, làm vi c trên qu n l c t hàng. Mã qu n l này là m t con s ă ý a m ý
nguyên. B ng b m có: ă
- Hàm b m: ă h(key) = (key % M)
- Hàm b m l i (hàm th m dò): ă ă prob h(key, i) = ( (key) + i*i + i) % M
Trong đó:
- key là giá trị khóa.
- i là m t s nguyên cho bi t l ế n b m l ă i (th m dò) th i.ă
- M là kích th c b ng b m. ướ ă
Gi ườ s M = 7, cho tr ng h p cT a b a d t ng b m ã chă đ liu nh bên d i. Biư ướ ế -” ký
hiu v trí tr ng trong b ng b m. ă
B ng b m ă T
0
-
1
-
2
16
3
-
4
-
5
12
6
13
a. m) Trình bày t ng b c vi c tìm mã qu n l 23 trong b ng b m . (0.5 ướ ý ă T đi
b. Trình bày t ng b c vi c thêm các qu n l sau vào b ng b m ướ ý ă T theo úng th t đ
li đ t kê là 11, 20, 27 (1.5 i m).
Câu 5:
Trong các ng d ng th c t , ế chẳng h n trong m ng l i giao thông ng b , ng th y ướ đườ đườ
hoặc ng hàng không, ng i ta không ch quan tâm n vi c tìm ng i gi a hai a đườ ườ đế đườ đ đị
đ ế i m còn ph i l a ch n m t hành trình ti t ki m nh t (theo tiêu chu n không gian, thời
gian hay chi phí). Vấn đề này th c hình hóa thành m t bài toán trên thđượ đồ , trong
đ đượ đỉ đườ đó m i đị đ a i m c bi u di n b i m t đ nh, c nh n i hai nh bi u di n cho “ ng i trực
tiếp” gia hai địa điểm (tức không i qđ ua trung gian) và tr ng s c nh là kho ng địa điểm a c
cách gi a hai . địa đi m
Bài toán th phát bi u d i d ng t ng quát nh sau: Cho m t ướ ư đơn đồ thị có h ng ướ
trng s d ng (V,E), trong ó V t p nh, E t p c nh (cung)ươ G= đ đỉ các c nh u đề
trng s, hãy tìm m t ng i (không nh l p l i) ng đườ đ đỉ n nh t t nh xu t phát S thu ừ đỉ c V
đế đỉ đn nh ích F thuc V.
Gi s thông tin u vào c a bài toán (Input) c nh p vào ch ng trình nh đầ đượ ươ ư sau:
Input
7
A B 1
B E 3
MSSV:............................ m 3 trang Trang Đề thi g
3
E D 3
C B 4
A D 7
E C 2
C D 1
A E
Hãy c hi n các yêu c u sau: th
a. li Xây d ng các c u trúc d u phù hợ p nh t có thể để đồ bi u di n th trên máy tính
theo input ã cho. (0.5 m) đ đi
Cấu trúc đưc xem t u t c các tiêu chu n saut nế đạ đượ : Tiết ki m tài nguyên ; H
trợ m t s thao c c b n ơ nhưKiểm tra hai nh có k nhau khôngđỉ ”, “Tìm danh sách
các nh kđỉ ề v i m cột nh cho trđỉ ướ với ràng bu c là không ph i duy t qua danh sách
tất c các c nh c ủa thđồ .
b. Viết hàm nh p theo Input ở đầu bài và lưu trữ thông tin c a đồ th vào c u trúc d li u
đ đề ã xu t câu a. (0.5 đ i m)
*** K . Sinh viên HÔNG YÊU C U tìm cách gi i cho bài toán này ĐƯỢC PHÉP sử
dụng Standard Template Library-STL v ng c u trúc d u (vector, stack, queue, i nh li
list, map, set, pair, …) c ng nh gi i thu t ũ ư được xây d ng s ẵn.
Hết
MSSV:............................ m 3 trang Trang Đề thi g
4
Duy đềt Ging viên ra đề
| 1/4

Preview text:

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐỀ THI CUỐI KỲ
KHOA KHOA HỌC MÁY TÍNH
HỌC KỲ 2 – NĂM HỌC 2021 – 2022
Môn thi: Cấu trúc dữ liệu và giải thuật
Mã lớp: Các lớp đại trà, chất lượng cao
Thời gian làm bài: 90 phút
(Sinh viên không được sử d ng tài li ệu) Câu 1: a. Hãy cho biết đ
ộ phức tạp của thuật toán Insertion sort (chèn trực tiếp) theo định nghĩa
Big-O (O lớn) (0.25 điểm)
b. Viết hàm sắp xếp mảng 1 chiều g m ồ
N phần tử giảm dần với thuật oán t Insertion sort (0.75 điểm) c. Hãy cho biết dãy s
ố sẽ thay đổi qua từng bước như thế nào khi áp d ng ụ thuật toán ở câu
1b, biết rằng dãy số cho như sau: 3, 8, 4, 5, 9, 1, 2, 6 (1 điểm) Câu 2:
Cho dãy ký tự như sau: R, E, T, A, V, X, L, G, S, I Hãy th c hi ự ện các yêu cầu sau: a. Vẽ cây ị
nh phân tìm kiếm bằng cách thêm lần lượt từng ký tự vào cây theo thứ tự t ừ trái qua phải của dãy k
ý tự trên, biết rằng giá trị của từng k ý t
ự tương ứng theo thứ t ự xuất hiện của k t ý ự trong t ừ điển (1 i đ ểm) b. Cho biết kết q a duy ủ ệt cây theo RNL, NRL (1 i đ ểm)
c. Huỷ lần lượt từng nút L, T, E, R trên cây, m i ỗ lần hu ỷ 1 nút vẽ lại cây n i ố tiếp theo nh ư thứ tự huỷ đ (1 iểm) Câu 3:
Cho biết cây B-Tree bậc 3 là m t cây ộ th a mãn các tính ch ỏ ất sau: •
Tất cả node lá nằm trên cùng m t m ộ ức •
Tất cả các node, trừ node g c và node lá, có ố
*tối thiểu* 2 node con. •
Tất cả các node có *tối đa* 3 con •
Tất cả các node, trừ node g c, có t ố
ừ 1 cho đến 2 khóa (keys) •
Một node không phải lá và có n khóa thì phải có n+1 node con. Hãy th c hi ự ện các yêu cầu sau: 3.1 Cho dãy s : 12, 17, ố
20, 23, 15, 11, 24, 13, 19, 22, 18, 21, 16. H i
ỏ khi lần lượt thêm các s ố trong dãy theo th t ứ ự t trái qua ph ừ ải vào m t cây B-Tree b ộ ậc 3 r ng 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 điểm)
b. Vẽ cây B-Tree trước và sau khi thêm các khóa ở câu a (1 i đ ểm)
3.2 Cho cây B-Tree bậc 3 nh hình sau: ư
Hãy lần lượt tiến hành xóa các khóa sau kh i
ỏ cây: 13, 24, 19 và vẽ cây B-Tree trước
và sau khi xóa mỗi khóa trên (0.5 điểm) Lưu khi xoá: ý − Khi khóa cần xóa (g i
ọ là x) không nằm ở node lá, chọn khóa thế mạng là khóa có giá
trị lớn nhất mà nhỏ ơ h n x.
MSSV:............................ Đề thi gồm 3 trang Trang 1
− Thao tác nhường khoá (underflow) sẽ được th c
ự hiện khi hai node liền kề có t ng ổ số khóa >= 2. Khi có m t ộ node không còn áp đ ng ứ đủ số lượng khóa t i ố thiểu, ưu tiên
thực hiện underflow thay cho catenation (hợp) vì thao tác này không làm thay đổi số khóa c a node cha. ủ
− Khi có 02 lựa chọn node liền kể để th c
ự hiện catenation, ưu tiên chọn catenation giữa
node bị thiếu khóa với node liền trước. Câu 4:
Để việc tìm kiếm thông tin mặt hàng được nhanh chóng, ườ ng i ta dùng một ả b ng ă b m theo
phương pháp thăm dò, làm việc trên mã quản l
ý của mặt hàng. Mã quản l ý này là một con s ố nguyên. Bảng băm có: - Hàm băm: h(key) = (key % M)
- Hàm băm lại (hàm thăm dò): prob(key, i) = (h(key) + i*i + i) % M Trong đó: - key là giá trị khóa. - i là m t s
ộ ố nguyên cho biết lần băm lại (thăm dò) thứ i.
- M là kích thước bảng băm.
Giả sử M = 7, cho trường hợp T của bảng băm ã đ chứa dữ liệu nh
ư bên dưới. Biết “-” là ký hiệu vị trí tr ng trong b ố ảng băm. Bảng băm T 0 - 1 - 2 16 3 - 4 - 5 12 6 13 a. Trình bày t ng b ừ
ước việc tìm mã quản l 23 trong b ý ảng băm T. (0.5 điểm)
b. Trình bày từng bước việc thêm các mã quản l
ý sau vào bảng băm T theo úng đ th ứ t ự
liệt kê là 11, 20, 27 (1.5 điểm). Câu 5: Trong các ng ứ d ng ụ
thực tế, chẳng hạn trong mạng lưới giao thông đường b , ộ đường th y ủ
hoặc đường hàng không, người ta không chỉ quan tâm đến việc tìm đường i đ giữa hai địa điểm mà còn ả
ph i lựa chọn một hành trình tiết kiệm ấ
nh t (theo tiêu chuẩn không gian, thời
gian hay chi phí). Vấn đề này có thể được mô hình hóa thành m t ộ bài toán trên đồ thị, trong
đó mỗi địa điểm đượ ể c bi u diễn bởi một ỉ
đ nh, cạnh nối hai đỉnh biểu diễn đườ cho “ ng đi trực
tiếp” giữa hai địa điểm (tức không i q
đ ua địa điểm trung gian) và tr ng s ọ ố của cạnh là khoảng cách gi a hai ữ địa điểm.
Bài toán có thể phát biểu dưới dạng t ng ổ quát nh ư sau: Cho m t
ộ đơn đồ thị có hướng và có
trọng số dương G=(V,E), trong ó
đ V là tập đỉnh, E là tập cạnh (cung) và các cạnh đều có trọng số, hãy tìm m t
ộ đường đi (không có đỉnh lặp lại) ngắn nhất từ đỉnh xuất phát S thuộc V đế đỉ n đ nh ích F thuộc V. Giả s thông tin ử
đầu vào của bài toán (Input) được nhập vào chương trình như sau: Input Gii thích 7
- Dòng đầu tiên chứa một s nguyên d ố ương e cho biết s c ố ạnh c a ủ đồ thị A B 1
- Với e dòng tiếp theo, m i
ỗ dòng chứa hai chuỗi u, i và một số nguyên B E 3
dương x, thể hiện thông tin có một cạnh nối từ đỉnh u sang đỉnh i trong
MSSV:............................ Đề thi gồm 3 trang Trang 2 E D 3 đồ thị ớ
v i độ dài (trọng số) là x C B 4 - Dòng cu i ố cùng chứa hai chu i ỗ s và f, ây đ
là đỉnh bắt đầu và đỉnh kết A D 7 thúc của đường i c đ ần tìm E C 2 C D 1 Lưu : không bi ý ết trước s
ố đỉnh và danh sách các đỉnh. A E Hãy th c hi ự ện các yêu cầu sau: a. Xây d ng ự
các cấu trúc dữ liệu phù hợp ấ
nh t có thể để biểu diễn đồ thị trên máy tính theo input ã cho. (0.5 đ điểm)
Cấu trúc được xem là tốt nếu đạt được các tiêu chuẩn sau: Tiết kiệm tài nguyên; Hỗ trợ m t s ộ thao ố
tác cơ bản như “Kiểm tra hai đỉnh có kề nhau không”, “Tìm danh sách
các đỉnh kề với một đỉnh cho trước” với ràng bu c
ộ là không phải duyệt qua danh sách
tất cả các cạnh của đồ thị.
b. Viết hàm nhập theo Input ở đầu bài và lưu trữ thông tin c a
ủ đồ thị vào cấu trúc dữ liệu đã đề ấ
xu t ở câu a. (0.5 điểm)
*** KHÔNG YÊU CẦU tìm cách giải cho bài toán này. Sinh viên ĐƯỢC PHÉP sử
dụng Standard Template Library-STL với những c u
ấ trúc dữ liệu (vector, stack, queue,
list, map, set, pair, …) cũng như gi i thu t
ậ được xây dựng sẵ n. Hết
MSSV:............................ Đề thi gồm 3 trang Trang 3 Duyệt đề Giảng viên ra đề
MSSV:............................ Đề thi gồm 3 trang Trang 4