Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

TRƯỜNG ĐẠI HỌC NGOẠI NGỮ – TIN HỌC ĐÁP ÁN ĐỀ THI KẾT THÚC HỌC PHẦN

THÀNH PHỐ HỒ CHÍ MINH BẬC ĐẠI HỌC – HỆ CHÍNH QUY


KHOA CÔNG NGHỆ THÔNG TIN Học kỳ 1 Năm học 2021 – 2022

ĐÁP ÁN ĐỀ CHÍNH THỨC Môn: Cấu trúc dữ liệu và giải thuật


(Đáp án có 03 trang) Thời gian làm bài: 90 phút, không kể thời gian phát đề
(SV được sử dụng tài liệu)

Câu 1. (2,0 điểm) Cho dãy số A gồm 8 giá trị như sau:

5 12 24 3 3 50 45 8
0

1. Hãy trình bày từng bước quá trình sắp xếp dãy số A theo thứ tự tăng dần
bằng phương pháp sắp xếp Chèn trực tiếp (Insertion Sort) (1,5 điểm).
0 1 2 3 4 5 6 7
Xét vị trí Gán So sánh
5 12 24 30 3 50 45 8
x=a[1]=12 x, a[0]
1
a[1]=x 5 12 24 30 3 50 45 8
x=a[2]=24 x, a[1]
2
a[1]=x 5 12 24 30 3 50 45 8
x=a[3]=30 x, a[2]
3
a[3]=x 5 12 24 30 3 50 45 8
x=a[4]=3 x, a[3]
a[4]=a[3] x, a[2] 5 12 24 30 30 50 45 8
a[3]=a[2] x, a[1] 5 12 24 24 30 50 45 8
4
a[2]=a[1] x, a[0] 5 12 12 24 30 50 45 8
a[1]=a[0] 5 5 12 24 30 50 45 8
a[0]=x 3 5 12 24 30 50 45 8
x=a[5]=50 x, a[4]
5
a[5]=x 3 5 12 24 30 50 45 8
x=a[6]=45 x, a[5]
6 a[6]=a[5] x, a[4] 3 5 12 24 30 50 50 8
a[5]=x 3 5 12 24 30 45 50 8
x=a[7]=8 x, a[6]
a[7]=a[6] x, a[5] 3 5 12 24 30 45 50 50
a[6]=a[5] x, a[4] 3 5 12 24 30 45 45 50
7 a[5]=a[4] x, a[3] 3 5 12 24 30 30 45 50
a[4]=a[3] x, a[2] 3 5 12 24 24 30 45 50
a[3]=a[2] x, a[1] 3 5 12 12 24 30 45 50
a[2]=x 3 5 8 12 24 30 45 50
Tổng 24 16

2. Cho biết tổng số phép so sánh và số phép gán liên quan đến giá trị mảng sau
khi hoàn tất việc sắp xếp theo phương pháp trên (0,5 điểm).
- Số phép gán = 24
- Số phép so sánh = 16

1
Câu 2. (2,0 điểm) Cho biểu thức E theo dạng trung tố (Infix):
E=( ( 2+ 4 ) :3− ( 8: 4+3 ))×2
Sử dụng thuật toán nghịch đảo Ba Lan, sinh viên hãy trình bày chi tiết từng bước:
1. Quá trình chuyển biểu thức E sang dạng hậu tố (Postfix) (1,0 điểm).
Stack Postfix
Token
0 1 2 3 4
((2+4)/3- (8/4+3))*2 (
((2+4)/3- (8/4+3))*2 ( (
((2+4)/3- (8/4+3))*2 ( ( 2
((2+4)/3- (8/4+3))*2 ( ( + 2
((2+4)/3- (8/4+3))*2 ( ( + 24
((2+4)/3- (8/4+3))*2 ( 24+
((2+4)/3- (8/4+3))*2 ( / 24+
((2+4)/3- (8/4+3))*2 ( / 24+3
((2+4)/3- (8/4+3))*2 ( - 24+3/
((2+4)/3- (8/4+3))*2 ( - ( 24+3/
((2+4)/3- (8/4+3))*2 ( - ( 24+3/8
((2+4)/3- (8/4+3))*2 ( - ( / 24+3/8
((2+4)/3- (8/4+3))*2 ( - ( / 24+3/84
((2+4)/3- (8/4+3))*2 ( - ( + 24+3/84/
((2+4)/3- (8/4+3))*2 ( - ( + 24+3/84/3
((2+4)/3- (8/4+3))*2 ( - 24+3/84/3+
((2+4)/3- (8/4+3))*2 24+3/84/3+-
((2+4)/3- (8/4+3))*2 * 24+3/84/3+-
((2+4)/3- (8/4+3))*2 * 24+3/84/3+-2
((2+4)/3- (8/4+3))*2 24+3/84/3+-2*
2. Quá trình tính giá trị biểu thức hậu tố trên (1,0 điểm).
Stack Kết quả
Token
0 1 2 3 4
24+3/84/3+-2* 2
24+3/84/3+-2* 2 4
24+3/84/3+-2* 6
24+3/84/3+-2* 6 3
24+3/84/3+-2* 2
24+3/84/3+-2* 2 8
24+3/84/3+-2* 2 8 4
24+3/84/3+-2* 2 2
24+3/84/3+-2* 2 2 3
24+3/84/3+-2* 2 5
24+3/84/3+-2* -3
24+3/84/3+-2* -3 2
24+3/84/3+-2* -6
-6
2
Câu 3. (3,0 điểm) Giả sử cần xây dựng lớp cấu trúc dữ liệu Stack số nguyên dùng danh
sách liên kết đơn để lưu trữ danh sách giá trị của Stack. Hãy thực hiện các yêu
cầu sau:
1. Khai báo thành phần dữ liệu của lớp cấu trúc dữ liệu Stack bằng ngôn ngữ
C# (lưu ý: không sử dụng các lớp cấu trúc dữ liệu thư viện của C#) (1,0
điểm).
- Khai báo class node thể hiện 1 phần tử của Stack gồm 2 phần: Giá trị và
next để xác định node kế tiếp
- Khai báo class Stack gồm node top để quản lý phần tử đầu của Stack
2. Mô tả giải thuật Push để thêm một số nguyên x vào Stack (1,0 điểm).
- Xác định rõ đầu vào và đầu ra của giải thuật
- Mô tả giải thuật chi tiết và rõ ràng bằng 1 trong các phương pháp (lưu
đồ, mã giả hoặc mã tự nhiên)
3. Cài đặt phương thức Push trên bằng ngôn ngữ C# (1,0 điểm).
Phương thức được cài đặt theo mô tả giải thuật

Câu 4. (3,0 điểm) Cho dãy số B gồm 12 giá trị như sau:

71 9 93 95 15 4 11 20 80 88 1 60
0 7

1. Vẽ cây nhị phân tìm kiếm T từ dãy B theo thứ tự từ trái sang phải (1,0 điểm).

Bst demo

2. Trình bày từng bước quá trình tạo cây nhị phân tìm kiếm cân bằng TAVL
(chèn từng phần tử vào cây và cân bằng cây nếu có) từ dãy B theo thứ tự
thực hiện từ trái sang phải (1,0 điểm).
avl demo
+ Thêm 71, 90

+ Thêm 93

3
4
+ Thêm 95, 15

+ Thêm 4

+ Thêm 11, 20, 80

+ Thêm 88

+ Thêm 17, 60

3. Trình bày quá trình xoá node gốc trên TAVL sao cho kết quả thu được TAVL
vẫn là cây AVL (1,0 điểm).

5
 Xoá node có giá trị 71
Bước 1: Tìm node thay thế của nhánh bên phải: 80

Bước 2: Thay thế giá trị 71 thành 80


Bước 3: Xoá node thay thế

------- Hết -------

6
TRƯỞNG KHOA/BỘ MÔN DUYỆT ĐỀ
(Ký và ghi rõ họ tên)

You might also like