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

Đề thi thử cuối kỳ 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!

1
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN H C T P CÔNG NGH PH N M M
TRƯỜNG ĐẠI HC
CÔNG NGH THÔNG TIN
BAN H C T P CÔNG NGH PH N M M
ĐỀ THI TH
MÔN: CTDL & GT
Câu 1:
a. Cho biết độ ph c t p c a gi i thu ật Merge Sort theo định nghĩa Big-O. Trình bày
các c th c hi n gi i thu t. bướ
V sơ đồ ừng bướ ật Merge Sort để t c thc hin gii thu sp xếp dãy sau theo th
t tăng dần: 9 8 2 3 4 1 3 2 5 7
b. Cho bi ph c t p c a gi i thu -O. Trình ết độ ật Binary Search theo định nghĩa Big
bày các c th c hi n gi i thu t. bướ
V đồ ừng bướ ật Binary Search để t c thc hin gii thu tìm kiếm phn t 10
trong dãy sau: 1 2 2 3 3 4 5 7 8 9
Câu 2: Cho dãy s sau: 27, 66, 58, 23, 32, 8, 10, 21, 9, 4, 5, 99, 63, 72, 24. Hãy th c
hin các yêu c u sau:
a. Xây d ng cây nh phân tìm ki m t dãy s theo th t thêm các ế đã cho vào cây
s t ph i sang trái c a dãy s .
b. Duy t cây trong câu a theo NRL, LRN, RNL.
c. Xóa kh i cây l t các nút 10, 21, 24, 63, 27 (v hình t ng h p) sao ần lượ ừng trườ
cho cây v n là cây nh phân tìm ki m sau khi xoá nút. ế
d. Vi t hàm in ra màn hình các nút trên cây có duy nh t m t nút con. ế
e. Vi m s ng nút lá, s nút hai con có trên cây. ết hàm đế lượ
2
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN H C T P CÔNG NGH PH N M M
Câu 3: Hãy t o cây B-Tree b c 3:
a. L t thêm các khóa A, D, Z, B, F, G, H, O, N, P, X, C vào cây. cho bi t ần lượ ế
thao tác nào thì có thao tác split node.
b. L t xóa các khóa P, D, F, C kh i cây. Xóa khóa nào thì ch c n th c hi n thao ần lượ
tác khóa nào thì ph i th c hi n underflow, catenate.
Câu 4: Cho b m M = 7 ô tr ng nh a các ô d liảng băm gồ và đã chứ ệu như hình
bên dưới. Biết bảng băm có hàm băm là: h(key) = (2*key + 5) mod 7, trong đó mod
là phép toán l d i khi x ấy dư. Bảng băm sử ụng phương pháp băm lạ ảy ra đụng độ
với hàm băm lại (hàm thăm dò): prob(key, i) = (h(key) + i*i + i) mod 7, i là s nguyên
cho bi t l i th i khi x y ra khóa key. ế ần băm lạ đụng độ
Chỉ số
Khóa
0
1
26
2
3
4
17
5
6
39
a. Trình bày từng bước và v hình b ảng băm khi thêm lần lượt các giá tr khóa (key)
sau: 14, 12, 31.
b. Trình bày t c khi tìm giá tr khóa 42 trong b ừng bướ ảng băm khi đã hoàn thành
yêu c u câu a.
Câu 5: Trong chương trình học ca một trường đại h c, m t s môn h c s có các
môn h c tiên t, t c môn h c h quyế ọc đó chỉ đượ ọc sau khi đã hoàn thành các
3
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN H C T P CÔNG NGH PH N M M
môn h c tiên quy t. y i h c c n ph i hoàn thành môn h c A ế xác định ngườ
trước khi h c môn h c B hay không.
Ví d: b ng môn h c và các môn h c tiên quy t: ế
STT
Môn học
Các môn học tiên quyết
1
Cấu trúc dữ liệu và giải thuật
Lập trình nâng cao
2
Lý thuyết tính toán
Cấu trúc dữ liệu và giải thuật
3
Trí tuệ nhân tạo
Cấu trúc dữ liệu và giải thuật, Nhập môn tin
học
4
Nhập môn tin học
5
Mật mã học và an toàn dữ
liệu
Lý thuyết tính toán, Nhập môn tin học, Lập
trình nâng cao
6
Lập trình nâng cao
Nhập môn tin học
Vi bảng điều ki n trên, ngưi h c c n hoàn thành môn L ập trình nâng cao trước
khi h c môn Trí tu nhân t o.
a. Hãy mô hình hóa bài toán trên thành bài toán trên đ th.
b. Gi s u vào c c nh thông tin đầ ủa bài toán đượ ập vào chương trình như sau:
Giải thích
- Dòng đầu tiên là một số e là
số cặp môn học mà môn này là
môn học tiên quyết của môn
còn lại
- e dòng tiếp theo, mỗi dòng
chứa 2 chuỗi i và j, chuỗi i là
môn học tiên quyết của chuỗi j
- dòng tiếp theo nhập vào hai
chuỗi là x và y để kiểm tra môn
x có phải là môn học trước môn
y không
4
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN H C T P CÔNG NGH PH N M M
Hãy xây d ng c u trúc d li u thích h bi u di th trên máy tính theo ợp để ễn đồ
input đã cho. đầu bài và lưu trữ Viết hàm nhp theo ví d input thông tin ca
đồ th vào cu trúc d liu xây dđã đề ng.
c. Vi c hi n yêu c u bài toán(có th làm chung câu c v i câu b) ết chương trình thự
Hết
------------------------------------------------------------------------------------------
Chúc các b n làm bài t t!
5
TRƯỜNG ĐẠI HC CÔNG NGH THÔNG TIN ĐHQG-HCM
BAN H C T P CÔNG NGH PH N M M
THAM KH O
Câu 1: Cho dãy các ký t c hi n các yêu như sau: A B C D E F W Z U T K Hãy thự
cu sau:
a. Hãy v cây nh phân tìm ki m t dãy ký t t ế rên (1 đ)
b. B xung l t các ký t hình thành cây nh phân ần lượ sau vào cây N, G, H, M, L để
tìm ki m m i, v hình cây khi thêm t ng ký t ế vào cây (1 đ)
c. Trình bày dãy k t k t q a khi duy t cây theo th t ế NRL, LRN (1 đ)
d. V hình cây khi xóa l t các ký t ần lượ W, E, H, C (1 đ)
Câu 2: Hãy t o cây B-Tree b c 5:
a. L t thêm các khóaần lượ 8, 12, 34, 21, 41, 45, 53, 67, 94, 69, 16, 10, 7, 23, 20,
81, 30, 31 split node vào cây. Và cho bi t thao tác nào thì có thao tác ế .
b. L t xóa các khóa kh i cây. Xóa khóa nào thì ch c n th c ần lượ 41, 10, 8, 69
hin thao tác , khóa nào thì ph i th c hi n . underflow catenate
| 1/5

Preview text:

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
TRƯỜNG ĐẠI HC ĐỀ THI TH
CÔNG NGH THÔNG TIN
MÔN: CTDL & GT
BAN HC TP CÔNG NGH PHN MM Câu 1:
a. Cho biết độ phức tạp của giải thuật Merge Sort theo định nghĩa Big-O. Trình bày
các bước thực hiện giải thuật.
Vẽ sơ đồ từng bước thực hiện giải thuật Merge Sort để sắp xếp dãy sau theo thứ
tự tăng dần: 9 8 2 3 4 1 3 2 5 7
b. Cho biết độ phức tạp của giải thuật Binary Search theo định nghĩa Big-O. Trình
bày các bước thực hiện giải thuật.
Vẽ sơ đồ từng bước thực hiện giải thuật Binary Search để tìm kiếm phần tử 10
trong dãy sau: 1 2 2 3 3 4 5 7 8 9 Câu 2: Cho dãy s
ố sau: 27, 66, 58, 23, 32, 8, 10, 21, 9, 4, 5, 99, 63, 72, 24. Hãy thực
hiện các yêu cầu sau:
a. Xây dựng cây nhị phân tìm kiếm từ dãy số đã cho vào cây theo thứ tự thêm các
số từ phải sang trái của dãy s . ố
b. Duyệt cây trong câu a theo NRL, LRN, RNL. c. Xóa kh i
ỏ cây lần lượt các nút 10, 21, 24, 63, 27 (vẽ hình từng trường hợp) sao
cho cây vẫn là cây nhị phân tìm kiếm sau khi xoá nút.
d. Viết hàm in ra màn hình các nút trên cây có duy nhất một nút con.
e. Viết hàm đếm số lượng nút lá, số nút hai con có trên cây. 1
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
Câu 3: Hãy tạo cây B-Tree bậc 3:
a. Lần lượt thêm các khóa A, D, Z, B, F, G, H, O, N, P, X, C vào cây. Và cho biết ở
thao tác nào thì có thao tác split node.
b. Lần lượt xóa các khóa P, D, F, C khỏi cây. Xóa khóa nào thì chỉ cần thực hiện thao
tác underflow, khóa nào thì phải thực hiện catenate.
Câu 4: Cho bảng băm gồm M = 7 ô trống nhớ và đã chứa các ô dữ liệu như hình
bên dưới. Biết bảng băm có hàm băm là: h(key) = (2*key + 5) mod 7, trong đó mod
là phép toán lấy dư. Bảng băm sử dụng phương pháp băm lại khi xảy ra đụng độ
với hàm băm lại (hàm thăm dò): prob(key, i) = (h(key) + i*i + i) mod 7, i là s ố nguyên
cho biết lần băm lại thứ i khi xảy ra đụng độ ở khóa key. Chỉ số Khóa 0 1 26 2 3 4 17 5 6 39
a. Trình bày từng bước và vẽ hình bảng băm khi thêm lần lượt các giá trị khóa (key) sau: 14, 12, 31.
b. Trình bày từng bước khi tìm giá trị khóa 42 trong bảng băm khi đã hoàn thành yêu cầu ở câu a.
Câu 5: Trong chương trình học của một trường đại h c ọ , m t
ộ số môn học sẽ có các môn h c
ọ tiên quyết, tức là môn học đó chỉ được học sau khi đã hoàn thành các 2
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
môn học tiên quyết. Hãy xác định người h c
ọ có cần phải hoàn thành môn h c ọ A trước khi h c
ọ môn học B hay không.
Ví d: bảng môn h c
ọ và các môn học tiên quyết: STT Môn học
Các môn học tiên quyết
1 Cấu trúc dữ liệu và giải thuật Lập trình nâng cao 2 Lý thuyết tính toán
Cấu trúc dữ liệu và giải thuật 3 Trí tuệ nhân tạo
Cấu trúc dữ liệu và giải thuật, Nhập môn tin học 4 Nhập môn tin học
5 Mật mã học và an toàn dữ
Lý thuyết tính toán, Nhập môn tin học, Lập liệu trình nâng cao 6 Lập trình nâng cao Nhập môn tin học
Với bảng điều kiện ở trên, người học cần hoàn thành môn Lập trình nâng cao trước khi h c
ọ môn Trí tuệ nhân tạo.
a. Hãy mô hình hóa bài toán trên thành bài toán trên đồ thị.
b. Giả sử 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 8
- Dòng đầu tiên là một số e là
số cặp môn học mà môn này là
môn học tiên quyết của môn Lap_trinh_nang_cao còn lại
Cau_truc_du_lieu_va_giai_thuat
- e dòng tiếp theo, mỗi dòng
Cau_truc_du_lieu_va_giai_thuat
chứa 2 chuỗi i và j, chuỗi i là Ly_thuyet_tinh_toan
môn học tiên quyết của chuỗi j …
- dòng tiếp theo nhập vào hai
Nhap_mon_tin_hoc Lap_trinh_nang_cao
chuỗi là x và y để kiểm tra môn
x có phải là môn học trước môn y không 3
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM
Hãy xây dựng cấu trúc dữ liệu thích hợp để biểu diễn đồ thị trên máy tính theo
input đã cho. Viết hàm nhập theo ví dụ input ở đầu bài và lưu trữ thông tin của
đồ thị vào cấu trúc dữ liệu đã đề xây dựng.
c. Viết chương trình thực hiện yêu cầu bài toán(có thể làm chung câu c với câu b) Hết
------------------------------------------------------------------------------------------
Chúc các bạn làm bài tốt! 4
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN – ĐHQG-HCM
BAN HC TP CÔNG NGH PHN MM THAM KHO
Câu 1: Cho dãy các ký tự như sau: A B C D E F W Z U T K Hãy thực hiện các yêu cầu sau:
a. Hãy vẽ cây nhị phân tìm kiếm từ dãy ký tự trên (1 đ) b. B
ổ xung lần lượt các ký tự sau vào cây N, G, H, M, L để hình thành cây nhị phân
tìm kiếm mới, vẽ hình cây khi thêm từng ký tự vào cây (1 đ)
c. Trình bày dãy kỹ tự kết qủa khi duyệt cây theo thứ tứ NRL, LRN (1 đ)
d. Vẽ hình cây khi xóa lần lượt các ký tự W, E, H, C (1 đ)
Câu 2: Hãy tạo cây B-Tree bậc 5:
a. Lần lượt thêm các khóa 8, 12, 34, 21, 41, 45, 53, 67, 94, 69, 16, 10, 7, 23, 20,
81, 30, 31 vào cây. Và cho biết ở thao tác nào thì có thao tác split node.
b. Lần lượt xóa các khóa 41, 10, 8, 69 khỏi cây. Xóa khóa nào thì chỉ cần thực
hiện thao tác underflow, khóa nào thì phải thực hiện catenate. 5