Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Bài tập cá nhân

Thời gian làm bài 15 ngày

Cài đặt class template cho cấu trúc bảng băm với các đặc tả như sau

a) Phương pháp xử lý xung đột: nối kết (separate chaining)


b) Hàm băm: dùng hàm băm của D.Knuth như sau:
h(k) = ⌊𝑚 ∗ (𝑘 ∗ 𝐴 𝑚𝑜𝑑 1) ⌋
√"#$
Trong đó: A = % , 𝑘 ∗ 𝐴 𝑚𝑜𝑑 1 là phần thập phân của 𝑘 ∗ 𝐴, ⌊𝑥⌋ là floor(x)
c) Bảng lưu trữ T: dùng mảng cấp phát động khi khởi tạo class (constructor). Số phần tử (m) được
truyền vào cho constructor. Mỗi vị trí của bảng T chứa 1 khoá k và con trỏ đến danh sách các
phần tử xung đột.
d) Class chỉ có 1 constructor. Ngoài tham số m, constructor còn nhận tham số là tên file text chứa
dữ liệu output. Sau khi khởi tạo, ghi kết quả ra file output.
e) Destructor: giải phóng bảng T và các vùng nhớ đã cấp. Ghi kết quả ra file output.
f) Hàm insert(k): thêm khoá k vào bảng băm. Ghi kết quả ra file output.
g) Hàm search(k): tìm khoá k trong bảng băm. Ghi kết quả ra file output.

Chương trình kiểm tra:

1) Dùng tham số dòng lệnh, truyền vào tên file text chứa dữ liệu test.
2) Format file test như sau:

Nội dung file Giải thích


result.txt Tên file chứa dữ liệu output
1000 Số phần tử (m) của bảng T
800 Số phần tử cần insert vào bảng băm
5 10 3 45 67 89 91 12 31 … Các khoá dùng để insert (*)
20 Các phần tử để tìm kiếm (search)
45 5 211 … Các khoá dùng để tìm kiếm (*)

(*) số lượng khoá liệt kê sẽ bằng với số lượng đã cho, chương trình không cần kiểm tra. Các khoá insert
sẽ không trùng nhau.

3) Khai báo một bảng băm kiểu <int>. Đọc nội dung file test và thực hiện các lệnh cần thiết.
4) Format file output như sau:

Nội dung file Giải thích


[constructor] – khoi tao thanh cong Kết quả của constructor. Nếu không khởi tạo được sẽ ghi
+ m = xxx “khoi tao that bai” và lỗi tương ứng ở dòng dưới.
+ output file = xxx
[insert 1] – thanh cong Kết quả của 1 lần insert.
+ key = xxx
+ hash value = xxx

1
+ xung dot = [co/khong] Kết quả của 1 lần insert.
[insert 2] – thanh cong
+ key = xxx
+ hash value = xxx
+ xung dot = [co/khong]
... Kết quả của 1 lần search.
[search 1] – tim thay
+ key = xxx
+ hash value = xxx
+ xung dot = [co/khong] Kết quả của 1 lần search.
[search 2] – khong tim thay
+ key = xxx
+ hash value = xxx
+ xung dot = [co/khong]
... Kết quả của destructor.
[destructor] – huy bo thanh cong > đếm số phần tử xung đột trong các linked-list đã xóa
+ so phan tu xung dot da delete = xxx
+ da delete bang T

HẾT

You might also like