1 | Page
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: …../…../….
Thi gian 90’
(
Sinh viên đưc s dng tài liu
)
Hà ni, .…. /….. / …...
Trưng b môn
Bài 1.
a) So sánh ưu nhưc đim khi lưu tr cây nh phân chiu cao dùng: (1) mng, (2) cu trúc liên kết
(1 Đim)
struct BNode
{
DATA_TYPE data; //là kiu d liu lưu tr ti nút
struct BNode * Lchild, *Rchild; //con tr ti cây con trái và con phi
}
Theo các tiêu chí:
B nh,
thi gian truy cp mt nút bt k,
tìm nút cha ca mt nút bt k trên cây
Biu din cây nh phân dùng mng: dùng mng có s ng phn t bằng s ng nút trên cây nh phân đầy đ chiu
cao
(s ng phn tử ca mng s
2ℎ+1 1
phn t).
Vi nút th 𝑖 (𝑖 0) thì nút con ca nó s 2𝑖+ 1 2𝑖+ 2, nút cha ca nó s 𝑖−1
2
Biu din cây nh phân dùng cu trúc liên kết: mi nút có thêm hai con tr là con tr tới cây con trái và con tr tới cây
con phi.
Tiêu chí
Biểu din dùng mng
Biểu din dùng cu trúc liên kết
B nh
Biu din 1 phn t: không cn s dng thêm
bộ nh ph
Biu din cho c cây: luôn cn b nh
2ℎ+1 1 cho cây nh pahan bt k chiu cao
, nên s rt lãng phí b nh nếu cây nh phân
đó không phi là cây gn hoàn chnh.
Biu din 1 phn t: Cn thêm b nh ph lưu tr
con tr tới cây con trái và cây con phải
Biu din cho c cây: Cây có bao nhiêu nút thì cp
phát đng by nhiêu b nh. Tiết kim b nh
hơn nếu dùng biu din cho cây nh phân bt k
Thi gian
truy cp 1
nút bt k
𝑂(1)
Vì mng h tr truy cp ngu nhiên
𝑂()
Cu trúc liên kết không h tr truy cp ngu nhiên,
ta phi truy cp thông qua các nút t tiên ca nút
đó
Tìm nút cha
ca mt nút
bất k
Thi gian là 𝑂(1)
Thi gian trung bình c 𝑂(𝑛), vì ta phi duyt t
gc đ tìm ti nút cha ca nút đó
Mã đ
CD 2011 - 02
CuuDuongThanCong.com https://fb.com/tailieudientucntt
2 | Page
b) Đánh giá thi gian thc hin ti nht ca hàm sau theo O-lớn (1 đim)
double fastPower(double x, int n)
{
double fract;
if(n==0) return 1;
fract = fastPower(x,n/2);
if(n%2==0) return fract* fract;
else return fract*fract*x;
}
Hàm trên đưc cài đt đ quy, li gi đ quy fract = fastPower(x,n/2);
Được gi 1 lần trong hàm, ta có công thc đ quy tng quát là
𝑇(𝑛) = 1 𝑛ế𝑢 𝑛= 0
𝑇�𝑛2
+ 1 𝑛ế𝑢 𝑛> 0
Ta có th viết gn li là 𝑇(𝑛)=𝑇𝑛
2+ 1
Áp dng đnh l ý th vi 𝑎= 1, 𝑏= 2 𝑓(𝑛)= 1
𝑛
log𝑏𝑎
=𝑛
log21
= 1
trưng hp 2 ca đnh l ý th
Vy kết lun 𝑇(𝑛)=𝜃(log 𝑛)
c) So sánh ưu nhưc đim ca phương pháp t chc tìm kiếm dùng mng và áp dng thut toán tìm kiếm
nh phân, cây nh phân tìm kiếm và dùng bng băm theo các tiêu chí sau (1 Đim)
Tìm kiếm nh phân
Cây nh phân tìm kiếm
Bng băm
tr các phn t
𝑂(𝑛)
T lệ vi s phn t, tuy nhiên
mỗi phn t không phải lưu tr
thêm d liu tha
𝑂(𝑛)
T l vi s phn t, tuy nhiên
mi phn t phi lưu tr thêm
d liu tha (2 con tr)
S ng ô nh xác đnh
tc, là kích thưc bng
băm (tng ln hơn s
ng phn t cn lưu nhiều
lần)
𝑂(log 𝑛)
𝑂(log 𝑛)
𝑂(1)
𝑂(𝑛)
𝑂(log 𝑛)
𝑂(1)
𝑂(𝑛)
𝑂(log 𝑛)
𝑂(1)
các phn t hin
𝑂(𝑛)
𝑂(𝑛)
Không h trợ thao tác này,
nếu mun in ta phi duyt
toàn bộ bảng băm
Bài 2.
a) Biểu thc dng hu t là gì? Ưu đim ca biu thc dng hu tố? (1 Đim)
Biu thc dng hu t: Là cách biu din biu thc trong đó toàn t đứng sau các toán hng mà nó tác đng
Ví d: 3 5 + a
Ưu đim ca biu thc dng hu t là ch có mt cách đnh giá (cách tính) duy nhất. Không như biểu thc dng trung t
cn quy đnh thêm v độ ưu tiên ca toán t, và du ngoc.
Biểu thc dng hu t đưc dùng đ biểu din biểu thc trong máy tính
b) Định giá biu thc dng hu t sau (trình bày rõ các trng thái trung gian ca STACK (1 Đim)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
3 | Page
10 2 3 + / 2 ^ 4 12 8 % +
Gp
STACK
Ghi chú
10
10
Gp toán hng đẩy vào stack
2
10, 2
Đỉnh stack bên phi nhất
3
10, 2, 3
+
10, 5
Thc hin 2+3
/
2
Thc hin 10/5
2
2, 2
^
4
Thc hin 2^2 (22)
4
4, 4
12
4, 4, 12
8
4, 4, 12, 8
-
4, 4, 4
Thc hiện 12-8
%
4, 0
Thc hin 4 %4
+
4
Thc hin 4 + 0
Kết qu cuối cùng là 4
c) V cây biu thc biu din cho biu thc phn b (không cn phi trình bày các bưc trung gian)
(1 Đim)
Bài 3.
a) Cho cây nh phân tìm kiếm ban đu như hình
thêm ln lưt dãy khóa 33, 43, 12, 36, 78, 29, 16, 9, 65, 27, 32. Hãy v cây nh phân kết
qu thu đưc cui cùng (không cn trình bày các bưc trung gian).
(1 Đim)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
4 | Page
b) Vi cây nh phân tìm kiếm thu đưc phn a, thc hin xóa ln lưt khóa 18 và 33.
Hãy v cây kết qu thu đưc sau mi ln xóa
Chú ý: chn nút thay thế là nút phi nht trên cây con trái
(1 Đim)
Bài 4. Cho mt đơn đthvô hưng 𝐺(𝑉,𝐸) như sau
𝑉= {𝐴,𝐵,𝐶,𝐷,𝐸,𝐹,𝐺,𝐻}
𝐸= {(𝐴,𝐵), (𝐴,𝐶), (𝐴,𝐸), (𝐵,𝐸), (𝐵,𝐺), (𝐶,𝐷), (𝐶,𝐵), (𝐷,𝐸), (𝐹,𝐷), (𝐹,𝐸), (𝐹,𝐺), (𝐻,𝐵), (𝐻,𝐺)}
a) Hãy biu din đ th trên dùng danh sách k (1 Đim)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
5 | Page
b) Thc hin BFS t đỉnh B, hãy đưa ra th tự các đnh đưc thăm. (1 Đim)
(Ch cn v đưc hình trng hàng đi hoc cây khung BFS là đưc đ đim)
STT
QUEUE
Ghi chú
0
B
1
A, C, E, G, H
Ly B ra, đưa các đnh k vi B mà chưa thăm vào QUEUE
2
C, E, G, H
3
E, G, H, D
4
G, H, D, F
5
H, D, F
6
D, F
7
F
8
Cây khung BFS t B
c) Hãy đưa ra các loi cnh thu đưc khi BFS ti đnh B (BackEdge, CrossEdge, TreeEdge và ForwardEdge).
Lưu ý: Các đnh trên đ th đưc thăm theo th tự ABC (1 Đim)
CuuDuongThanCong.com https://fb.com/tailieudientucntt