Đề thi môn Cấu trúc dữ liệu và giải thuật C++ | Trường Đại học Bách khoa Hà Nội

Đề thi môn Cấu trúc dữ liệu và giải thuật C++ | Trường Đại học Bách khoa Hà Nội. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

1 | P a g e
TRƯỜNG ĐẠI HC BÁCH KHOA HÀ NI
VIN CÔNG NGH THÔNG TIN VÀ TRUYN THÔNG
B MÔN KHOA HC MÁY TÍNH
***
H tên: ……………………………
Lp: …………………………………
SHSV: ……………………………….
ĐỀ THI MÔN: CU TRÚC D LIU
VÀ GII THUT
Ngày thi: …../…../….
Thời gian 90’
(Sinh viên được s dng tài liu)
Hà nội, .…. /….. / …...
Trưởng b môn
Bài 1.
a) Cho cây AVL sau, v cây kết qu khi thêm phn t 29, và xóa
phn t 25
b) Cho mt cây nh phân tìm kiếm có khóa là các s nguyên, và
mt giá tr k, Hãy viết hàm tìm và in ra tt c các cp phn
t (a, b) trên cây sao cho 𝑎 + 𝑏 𝑘
c) So sánh thi gian thêm và tìm kiếm ca các cu trúc d liu
sau: Bảng băm, mảng, danh sách liên kết, hàng đợi
Bài 2. Cho hai văn bản A và B đã được tách t, gi s ng t
phân bit ca văn bản A là n, và của văn bản B là m
(𝑛 𝑚). Hãy đưa ra thuật toán tìm tp t chung ca hai
văn bản theo tiêu chí
a) Thi gian thc hin nhanh nht
b) B nh ph tn ít nht
Trong c hai trường hp, hãy ch rõ thi gian thc hin theo O-ln và b nh ph cn s dng
Bài 3. Cho mt t đin tiếng anh gm n t, và mt danh sách ký t phân biệt độ dài m (𝑚 𝑛). Hãy xây
dng thuật toán tìm và đưa ra từ dài nht trong t điển được to t các ký t trong danh sách.
Thi gian ca thut toán cn𝑂(𝑛)
Bài 4. Cho mt danh sách s nguyên dương gm n phn t (𝑛 1 𝑡ỷ) và mt s nguyên dương k(𝑘 𝑛),
Hãy đưa ra thuật toán đếm s cp trong danh sách ban đầu có tng < 𝑘 vi thi gian thc hin nh hơn
𝑂(𝑛 log 𝑛)
Bài 5. Cho mt lung các ký t liên tc, hãy xây dng thuật toán đưa ra danh sách ký t không được lp
trong lung ký t đó (giả s rng tn ti ít nht mt ký t như vậy).
Chú ý: vi lung ta ch có th duyt các ký t 1 ln và theo 1 chiu
Mã đề
DH 2013 - 01
12 36
7 21 4531
10 27 33
25
CuuDuongThanCong.com https://fb.com/tailieudientucntt
2 | P a g e
Bài 6. Cho danh sách thông tin ca n cuc hp vi thời điểm bt đu và thời điểm kết thúc. Hãy đưa ra thut
toán sp xếp các cuc hp này vào các phòng sao cho s ợng phòng được s dng là nh nht có th.
Độ phc tp ca thut toán bạn đề xut là bao nhiêu?
Bài 7. Trong mt trình duyt cần lưu trữ các URL đã được thăm theo tần s truy cp gim dn.
Hãy xây dựng CTDL lưu trữ các URL h tr các thao tác
Thêm/xóa
Tìm kiếm
Vi thi gian 𝑂(log 𝑛), liu có th lưu trữ để hc hin các thao tác trên vi thi gian 𝑂(1)?
Bài 8. Cho 2 Queue thông thường, hãy xây dng thut toán sp xếp ch dung 2 queue đó (không s dng
thêm b nh ph) để sp xếp danh sách gm n phn t s nguyên.
Các thao tác được dùng ch là enqueue
dequeue
Bài 9. Cho m mng s nguyên vi s ng
phn t mi mng là n, các phn t trong
mi mảng đều đã được sp xếp. Hãy xây
dng thuật toán để tìm khong nh nht sao
cho mi mng có ít nht mt phn t
trong khoảng đó.
Ví d.
A1={1,2,5,7,8}
A2={1,4,6,7,8}
A3={2,5,9,10,12}
Thì khong nh nht có th là [8,9]
Gi ý: Dùng priority queue
Bài 10. Cho đồ th sau
a) Thc hin DFS ti E
b) Đưa ra phân loại cnh theo th t duyt phn a
Th t thăm theo ABC
Chú ý: Nhng bài yêu cu viết hàm mi phi viết code cho hàm, các bài xây dng thut toán ch cn nêu
ý tưởng (và ví d minh họa cho ý tưởng)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
| 1/2

Preview text:

Mã đề
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI DH 2013 - 01
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BỘ MÔN KHOA HỌC MÁY TÍNH ***
ĐỀ THI MÔN: CẤU TRÚC DỮ LIỆU
Hà nội, .…. /….. / …...
Họ tên: …………………………… VÀ GIẢI THUẬT
Trưởng bộ môn
Lớp: …………………………………
Ngày thi: …../…../…. Thời gian 90’
SHSV: ……………………………….
(Sinh viên được sử dụng tài liệu) Bài 1.
a) Cho cây AVL sau, vẽ cây kết quả khi thêm phần tử 29, và xóa phần tử 25 25
b) Cho một cây nhị phân tìm kiếm có khóa là các số nguyên, và
một giá trị k, Hãy viết hàm tìm và in ra tất cả các cặp phần
tử (a, b) trên cây sao cho 𝑎 + 𝑏 ≤ 𝑘
c) So sánh thời gian thêm và tìm kiếm của các cấu trúc dữ liệu 12 36
sau: Bảng băm, mảng, danh sách liên kết, hàng đợi
Bài 2. Cho hai văn bản A và B đã được tách từ, gọi số lượng từ 7 21 31 45
phân biệt của văn bản A là n, và của văn bản B là m
(𝑛 ≤ 𝑚). Hãy đưa ra thuật toán tìm tập từ chung của hai văn bản theo tiêu chí 10 27 33
a) Thời gian thực hiện nhanh nhất
b) Bộ nhớ phụ tốn ít nhất
Trong cả hai trường hợp, hãy chỉ rõ thời gian thực hiện theo O-lớn và bộ nhớ phụ cần sử dụng
Bài 3. Cho một từ điển tiếng anh gồm n từ, và một danh sách ký tự phân biệt độ dài m (𝑚 ≪ 𝑛). Hãy xây
dựng thuật toán tìm và đưa ra từ dài nhất trong từ điển được tạo từ các ký tự trong danh sách.
Thời gian của thuật toán cần là 𝑂(𝑛)
Bài 4. Cho một danh sách số nguyên dương gồm n phần tử (𝑛 ≈ 1 𝑡ỷ) và một số nguyên dương k(𝑘 ≪ 𝑛),
Hãy đưa ra thuật toán đếm số cặp trong danh sách ban đầu có tổng < 𝑘 với thời gian thực hiện nhỏ hơn 𝑂(𝑛 log 𝑛)
Bài 5. Cho một luồng các ký tự liên tục, hãy xây dựng thuật toán đưa ra danh sách ký tự không được lặp
trong luồng ký tự đó (giả sử rằng tồn tại ít nhất một ký tự như vậy).
Chú ý: với luồng ta chỉ có thể duyệt các ký tự 1 lần và theo 1 chiều 1 | P a g e CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Bài 6. Cho danh sách thông tin của n cuộc họp với thời điểm bắt đầu và thời điểm kết thúc. Hãy đưa ra thuật
toán sắp xếp các cuộc họp này vào các phòng sao cho số lượng phòng được sử dụng là nhỏ nhất có thể.
Độ phức tạp của thuật toán bạn đề xuất là bao nhiêu?
Bài 7. Trong một trình duyệt cần lưu trữ các URL đã được thăm theo tần số truy cập giảm dần.
Hãy xây dựng CTDL lưu trữ các URL hỗ trợ các thao tác  Thêm/xóa  Tìm kiếm
Với thời gian 𝑂(log 𝑛), liệu có thể lưu trữ để hực hiện các thao tác trên với thời gian 𝑂(1)?
Bài 8. Cho 2 Queue thông thường, hãy xây dựng thuật toán sắp xếp chỉ dung 2 queue đó (không sử dụng
thêm bộ nhớ phụ) để sắp xếp danh sách gồm n phần tử số nguyên.
Các thao tác được dùng chỉ là enqueue và dequeue J A
Bài 9. Cho m mảng số nguyên với số lượng G F
phần tử mỗi mảng là n, các phần tử trong B
mỗi mảng đều đã được sắp xếp. Hãy xây
dựng thuật toán để tìm khoảng nhỏ nhất sao K
cho mỗi mảng có ít nhất một phần tử ở trong khoảng đó. I H E Ví dụ. C A1={1,2,5,7,8} M A2={1,4,6,7,8} L A3={2,5,9,10,12} D
Thì khoảng nhỏ nhất có thể là [8,9]
Gợi ý: Dùng priority queue
Bài 10. Cho đồ thị sau a) Thực hiện DFS tại E
b) Đưa ra phân loại cạnh theo thứ tự duyệt ở phần a Thứ tự thăm theo ABC
Chú ý: Những bài yêu cầu viết hàm mới phải viết code cho hàm, các bài xây dựng thuật toán chỉ cần nêu
ý tưởng (và ví dụ minh họa cho ý tưởng) 2 | P a g e CuuDuongThanCong.com
https://fb.com/tailieudientucntt