Đề tham khảo cuối kỳ 2 Cấu trúc dữ liệu và giải thuật | Trường Đại học CNTT Thành Phố Hồ Chí Minh

Đề tham khảo cuối kỳ 2 Cấu trúc dữ liệu và giải thuật | 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:............................ Trang 1 / 3
TRƯNG ĐẠI HCNG NGH THÔNG TIN
KHOA KHOA H C MÁY TÍNH
ĐỀ THI THAM KHO CUI K
HC K 2 – N M H C 2021 – 2022 Ă
Môn thi: CTDL & GT
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: 1.5 đim
a. Hãy cho bi O ết t toán Selection sort theo độ phc t a thup c định ngh a Bigĩ -
(O ln) 25 (0. đim)
b. Viết hàm s i thu t tp x p m ng 1 chi u gi n vế m d oán Selection sort 5 (0.
đim)
c. Chy t ng b 75 ước thut toán ã vi t trên i dãyđ ế v s sau: 5, 8, 9, 10, 3, 6 (0.
đim
Câu 2: 3.5 đim
Cho dãy k tý như sau: F, D, B, A, C, E, H, G, I
Hãy thc hin các yêu c u sau :
a. V cây nh phân tìm ki ng cách thêm l n lếm b ưt tng 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 ca tng k tý tương ng
theo th t hi trong t t xu n ca k tý đi in. (1 đ m)
b. Cho biết k t q t cây theo RNL, NRL.ế a duy (0. m) 5 đi
c. Hu l l p n l ng nút D, E, F, H trên cây, m n hu 1 nút vượt t i l i cây n i ti ế
theo nh thư t m) hu. (1 đi
d. Viết hàm t nút con trênđếm s lượng nút có m cây, nếu cây r ng thì in ra giá
tr - ( m) 1. 1 đi
Câu 3: 2 đim
Cho biết cây B t cây th t sau-Tree bc 3 là m a mãn các tính ch :
Tt c t m node lá nm trên cùng m c
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 ph i lá và có n khóa thì ph i có n+1 node con .
Hãy thc hin các yêu c u sau :
3.1 Cho dãy s: 27, 19, 23, 9, 1, 3, 11, 21, 5, 13, 17, 15, 29, 25. H n li khi l ượt thêm
các s c 3 r trong dãy theo th t cây B t t t i rái qua ph vào m -Tree b ng thì:
a. Các khóa nào khi thêm vào s làm phát sinh thao tác split node? (0.5 đim)
b. V cây B c và sau khi thêm các khóa trên. (1-Tree trướ đim)
3.2 Cho cây B-Tree b : c 3 nh hình sauư
MSSV:............................ Trang 2 / 3
Hãy ln l n hành xóa các khóa sau khượt tiế i cây B-Tree: 11, 21, 13 cây B v -
Tree trước sau khi xóa mi khóa trên. (0.5 đim)
Lưu ý khi xoá:
- Khi khóa cn xóa (g node lá, ch n khóa th ng là khóa i là x) không nm ế m
có giá tr l n nh n x.t mà nh hơ
- Thao tác underflow s được th c hi có t n khi hai node li n k ng s khóa >=
2. Khi ng ng khóa t u, luôn u tiên có mt node không còn áp đ đủ s lượ i thi ư
thc hin underflow thay cho catenation vì thao tác này không làm thay đổi s
khóa ca node cha.
- Khi có 02 la chn node li n k để thc hin catenation, ưu tiên chn catenate
gia node b thiếu khóa v n tri node li ước
Câu 4: 2 đim
Cho m t b ng b m theo ph m dò b ă ương pháp thă c 2 v i hàm b ăm h(key) và hàm băm
li (hay hàm th m dò) ă prob(key, i) như sau:
h h(key) = (key % M) prob(key, i) = ( (key) + i*i ) % M
Trong đó:
- key là giá tr khóa.
- i là m t s nguyên cho bi t l n th m dò th i. ế ă
- M là kích thước bng băm.
Cho M = 7 và trên bng b m ã ch u nh bên dă đ a các m c d li ư ưới. Bi t EMế P và
DEL ln l hi u ánh d u v ng ho xóa trong b ng bượt là ký để đ trí còn tr c ã bđ ăm.
Key
0
EMP
1
EMP
2
2
3
EMP
4
4
5
EMP
6
EMP
a. Trình bày tng bưc vi c thêm các khóa Key trong danh sách bên d i vào ướ
bng b m theo úng th 1 ă đ t trong danh sách. ( đim)
STT
Key
1
6
2
16
3
10
b. Trình bày tng b ng b m khi hoàn thành ước vi c xóa giá tr Key=16 trong b ă
yêu c u 5 câu a. (0. đim)
c. Trình bày tng b ng b m khi hoàn thành ước vi c tìm giá tr Key=10 trong b ă
yêu c u 5 câu b. (0. đim)
Câu 5: 1 đim
Cho bài toán “Tô màu b n c t ra nh sau: m t b đồ đượ đặ ư n đồ các qu c gia trên
thế gii, ta mu i n tô màu các quc gia này sao cho hai n c có cùng ranh giướ được
khác màu nhau. Yêu c u tìm cách sao cho s ng ít nh n màu s d t. Bài toá
th được hình hóa thành m t i toán trên th đồ , khi đó mi nước trên bn đồ
MSSV:............................ Trang 3 / 3
một đ nh c a đ th , hai nướ c láng ging t ng ươ ng v i hai đ nh k nhau được ni vi
nhau b nh, bài toán trng m t c thành: màu các đỉnh c a đ th sao cho mi đỉnh
chỉ được tô m t màu, hai đnh k nhau có màu khác nhau và s màu s d ng là ít nh ất.
Giả sử cho thông tin đầu vào c a bài toán được nhập vào chương trình như sau:
Ví d Input
15
Viet_Nam Lao
Viet_Nam Trung_Quoc
Thai_Lan Lao
Campuchia Thai_Lan
Hãy thc hin các yêu c u sau:
a. Xây d ng cu d u trúc li thích hp bi u di n th nh m l u tr các thông để đồ ư
tin c n th iết trên b n đồ. (0. m) 5 đi
b. Viết hàm nh p th (b ng cách nh p s c nh và danh sách các c ví d đồ ạnh như
trên) u tr thông tin của đồ thị vào cấu trúc d li u đã đề xuất câu a.
(0.5 đim)
Hết
| 1/3

Preview text:

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỀ THI THAM KHẢO CUỐI KỲ
KHOA KHOA HỌC MÁY TÍNH
HỌC KỲ 2 – NĂM HỌC 2021 – 2022 Môn thi: CTDL & GT
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: 1.5 điểm
a. Hãy cho biết độ phức tạp của thuật toán Selection sort 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 giảm dần với thuật toán Selection sort (0.5 điểm)
c. Chạy từng bước thuật toán đã viết ở trên với dãy số sau: 5, 8, 9, 10, 3, 6 (0.75 điểm Câu 2: 3.5 điểm
Cho dãy ký tự như sau: F, D, B, A, C, E, H, G, 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. (0.5 điểm)
c. Huỷ lần lượt từng nút D, E, F, H 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)
d. Viết hàm đếm số lượng nút có một nút con trên cây, nếu cây rỗng thì in ra giá trị -1. (1 điểm) Câu 3: 2 điểm
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ố: 27, 19, 23, 9, 1, 3, 11, 21, 5, 13, 17, 15, 29, 25. 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 sẽ làm phát sinh thao tác split node? (0.5 điểm)
b. Vẽ cây B-Tree trước và sau khi thêm các khóa trên. (1điểm)
3.2 Cho cây B-Tree bậc 3 như hình sau:
MSSV:............................ Trang 1 / 3
Hãy lần lượt tiến hành xóa các khóa sau khỏi cây B-Tree: 11, 21, 13 và vẽ cây B-
Tree trước 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.
- Thao tác 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, luôn ưu tiên
thực hiện underflow thay cho catenation 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 catenate
giữa node bị thiếu khóa với node liền trước Câu 4: 2 điểm
Cho một bảng băm theo phương pháp thăm dò bậc 2 với hàm băm h(key) và hàm băm
lại (hay hàm thăm dò) prob(key, i) như sau:
h(key) = (key % M) prob(key, i) = (h(key) + i*i ) % M Trong đó: - key là giá trị khóa.
- i là một số nguyên cho biết lần thăm dò thứ i.
- M là kích thước bảng băm.
Cho M = 7 và trên bảng băm đã chứa các mục dữ liệu như bên dưới. Biết EMP và
DEL lần lượt là ký hiệu để đánh dấu vị trí còn trống hoặc đã bị xóa trong bảng băm. Key 0 EMP 1 EMP 2 2 3 EMP 4 4 5 EMP 6 EMP
a. Trình bày từng bước việc thêm các khóa Key trong danh sách bên dưới vào
bảng băm theo đúng thứ tự trong danh sách. (1 điểm) STT Key 1 6 2 16 3 10
b. Trình bày từng bước việc xóa giá trị Key=16 trong bảng băm khi hoàn thành
yêu cầu ở câu a. (0.5 điểm)
c. Trình bày từng bước việc tìm giá trị Key=10 trong bảng băm khi hoàn thành
yêu cầu ở câu b. (0.5 điểm) Câu 5: 1 điểm
Cho bài toán “Tô màu bản đồ” được đặt ra như sau: Có một bản đồ các quốc gia trên
thế giới, ta muốn tô màu các quốc gia này sao cho hai nước có cùng ranh giới được tô
khác màu nhau. Yêu cầu tìm cách tô sao cho số màu sử dụng là ít nhất. Bài toán có
thể được mô hình hóa thành một bài toán trên đồ thị, khi đó mỗi nước trên bản đồ là
MSSV:............................ Trang 2 / 3
một đỉnh của đồ thị, hai nước láng giềng tương ứng với hai đỉnh kề nhau được nối với
nhau bằng một cạnh, bài toán trở thành: tô màu các đỉnh của đồ thị sao cho mỗi đỉnh
chỉ được tô một màu, hai đỉnh kề nhau có màu khác nhau và số màu sử dụng là ít nhất.
Giả sử cho thông tin đầu vào của bài toán được nhập vào chương trình như sau: Ví dụ Input Giải thích 15
- Dòng đầu tiên chứa một số e là số cạnh của đồ thị Viet_Nam Lao
- e dòng tiếp theo, mỗi dòng chứa 02 chuỗi ui, Viet_Nam Trung_Quoc
thể hiện thông tin có một cạnh nối từ đỉnh u sang Thai_Lan Lao
đỉnh i trong đồ thị … Campuchia Thai_Lan
Lưu ý: không biết trước số đỉnh và danh sách các đỉnh
Hãy thực hiện các yêu cầu sau:
a. Xây dựng cấu trúc dữ liệu thích hợp để biểu diễn đồ thị nhằm lưu trữ các thông
tin cần thiết trên bản đồ. (0.5 điểm)
b. Viết hàm nhập đồ thị (bằng cách nhập số cạnh và danh sách các cạnh như ví dụ
ở trên) 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) Hết
MSSV:............................ Trang 3 / 3