Mô tả:
ĐẠI HỌC THÁI NGUYÊN
ĐỀ THI HẾT HỌC PHẦN
KHOA CÔNG NGHỆ THÔNG TIN
Môn thi: Cấu trúc dữ liệu và giải thuật; Hệ: Chính quy
………………
Thời gian chuẩn bị: 45 phút, không kể thời gian giao đề
Mã đề thi: 14
Câu 1(2 điểm)
Nêu khái niệm cây? Viết dạng cài đặt cây bằng danh sách cha của mỗi đỉnh. Với
cách cài đặt này, viết thủ tục tìm cha của đỉnh thứ k trên cây (giả sử các đỉnh trên
cây được đánh số theo một thứ tự nào đó, k là số nguyên nhập từ bàn phím)
Câu 2(4 điểm )
Các phương pháp để định nghĩa một tập hợp. Giả sử cần quản lý các tập hợp A, B
chứa các số nguyên, các số nguyên này có giá trị thuộc đoạn [1..n] (n là một hằng
số nào đó). Anh (chị) hãy:
1) Viết dạng cài đặt của tập hợp trên bởi véc tơ bít
2) Với dạng cài đặt trên, hãy viết các thủ tục tương ứng với các yêu cầu sau:
i. Nhập giá trị cho tập hợp A, B
ii. Tìm tập C = A∩B; C = AUB; C= A\B
iii. Xác định xem số nguyên x có thuộc tập A hay không?
iv. Thêm, loại bỏ số nguyên x vào, ra khỏi tập hợp
3) Anh(chị) hãy cho biết một tập hợp phải thỏa mãn điều kiện gì thì mới có
thể cài đặt bằng phương pháp vecto bít
Câu 3 (2 điểm)
Cho biểu thức E = (2*x+y)*(5*a - b)3
a) Hãy vẽ cây nhị phân T biểu diễn biểu thức trung tố E như trên
b) Muốn có biểu thức dạng tiền tố, dạng hậu tố thì phải duyệt cây T theo
thứ tự nào? Kết quả duyệt ?
……………………Hết……………………….
Thí sinh không được sử dụng tài liệu, không ghi vào đề thi
CB coi thi không giải thích gì thêm và nộp lại đề thi cho phòng chức năng theo quy chế của bộ
Câu 1
1) Khái niệm cây, cài đặt cây
(1 đ)
+ Khái niệm cây: Cây là một đồ thị vô hướng liên thông phi chu trình
+ Cài đặt cây bằng danh sách cha của mỗi đỉnh:
Const n = ;
Type Node = Record
Info: Item;
Parent: 0..n;
End;
Tree = array[1..n] of Node;
Var T: Tree;
Trong đó:
- Info: Chứa thông tin của đỉnh
- Item: Kiểu dữ liệu của dữ liệu lưu tại đỉnh của cây
2)
Viết hàm tìm số thứ tự của đỉnh là cha của đỉnh thứ k trên cây T
Procedure Tim(k: byte; T: Tree):0..n;
Begin
Parent := T[k].parent;
End;
Câu 2
+ Có hai phương pháp để xác định một tập hợp trong toán học: (0.5 đ)
- Liệt kê tất cả các phần tử trong tập hợp (nếu tập hợp đó là hữu hạn)
- Nêu lên các đặc trưng chung của các phần tử trong tập hợp
1) Viết dạng cài đặt tập hợp bởi véc tơ bít: (0.5 đ)
const n = ;
type set = array[1..n] of boolean;
var
A, B: Set;
2) Viết các thủ tục tương ứng với các yêu cầu:
a) Nhập giá trị cho tập A, B:
procedure Nhap(var A: set);
var i: integer; c: char;
(0.5 đ)
(1 đ)
Begin
Writeln(‘Nhap giá trj cho các phần tử của tập hợp!’);
Repeat
Write(‘Nhap giá trị I = ’); readln(i);
A[i]:= true;
Write(‘Co nhap nua khong? (c/k)’); read(c);
Until (c=’k’)or(c=’K’);
End;
Gọi thủ tục nhập trên, đối số truyền vào là B, để nhập dữ liệu cho tập B
b)Tìm hợp, giao, trừ của hai tập hợp A,B
(0.5 đ)
* giao của A và B
procedure Giao(A,B: set; var C: set);
var i: integer;
Begin
For i:=1 to n do
C[i]:= A[i] and B[i];
End;
* Tìm hợp của A và B:
procedure Hop(A,B: set; var C: set);
var i: integer;
Begin
For i:=1 to n do
C[i]:= A[i]or B[i];
End;
* Tìm hiệu A\B
procedure Hieu(A,B: set; var C: set);
var i: integer;
Begin
For i:=1 to n do
C[i]:= A[i] and notB[i];
End;
a) Tìm x trong tập A: Cách làm: kiểm tra xem a[x] = true hay false, nếu = true, kết
luận tìm thấy, ngược lại kết luận không tìm thấy
(0.5 đ)
b) Thêm số nguyên x và tập hợp A: Đặt A[x]:= true;
(0.5 đ)
c) Loại bỏ x ra khỏi tập hợp A: Đặt A[x]:= false;
(0.5 đ)
3) Các phần tử trong tập hợp phải là các số nguyên hoặc được mã hóa bởi các số nguyên
thì mới có thể cài đặt tập hợp bởi véc tơ bít (0.5 đ)
Câu 3
Tương tự câu 3 đề 12
- Xem thêm -