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: 27
Câu 1(3 điểm)
Cho cây nhị phân như hình vẽ:
15
10
21
9
12
31
0
Anh(chị) hãy:
1) Nêu khái niệm cây nhị phân tìm kiếm, cây đã cho có phải là cây nhị
phân tìm kiếm không? Giải thích tại sao?
2) Viết dạng cài đặt cây cân bằng bởi con trỏ.
3) Thêm một đỉnh có khoá x = 30 vào cây (minh họa vị trí được thêm
trên cây, giải thuật thêm tương ứng)
Câu 2( 2 điểm)
Cho một danh sách kế tiếp biểu diễn cây thư mục (directory tree), mỗi phần tử
gồm 2 thành phần: tên thư mục, vị trí của thư mục cha trên danh sách này (số
nguyên chỉ thứ tự thư mục trong danh sách). Nếu là thư mục gốc thì giá trị thứ
hai là 0. In cây thư mục này ra màn hình.
Câu 2 ( 3 điểm)
Cho một đa thức bất kỳ. Anh (chị) hãy:
1) Biểu diễn đa thức trên dưới dạng một danh sách liên kết đơn với mỗi phần tử
là một cấu trúc chứa hệ số và số mũ của thành phần đó.
2) Viết các chương trình con tương ứng với các yêu cầu sau:
a) Tối giản một đa thức (gộp các thành phần có cùng số mũ lại và sắp xếp
đa thức theo chiều số mũ giảm dần)
c) Hiển thị đa thức lên màn hình
……………………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) (1đ)
* khái niệm cây nhị phân tìm kiếm: Cây NPTK là một cây nhị phân thỏa mản 3 điều kiện:
Điều kiện 1: Khóa tại các đỉnh của cây con trái nhỏ hơn khóa tại gốc
Điều kiện 2: Khóa tại gốc > khóa tại các đỉnh của cây con bên phải
Điều kiện 3: Cây con bên trái và cây con bên phải đều là cây NPTK
* Cây nhị phân đã cho là cây NPTK vì nó thỏa mãn các điều kiện được nêu trong khái
niệm cây NPTK
2) Dạng cài đặt cây bằng con trỏ(0.5đ)
Type
BinaSearchTree = ^ Nut;
Nut = Record
Key: integer;
Left, Right: BinaSearchTree;;
End;
Var T : BinaSearchTree;
3) Thêm đỉnh có khóa x = 30 vào cây: (1.5đ)
* Hình ảnh cây sau khi thêm x:
15
10
9
21
12
0
31
30
* Viết thủ tục thêm một đỉnh x vào cây R: Insert(x, R):
- Sử dụng con trỏ phụ M chứa địa chỉ của nút cần thêm
- Xin MT cấp phát ô nhớ cho M
- Đổ dữ liệu cần thêm vào ô nhớ có địa chỉ M
- Gắn M vào cây:
Nếu Cây rỗng (R = nil): R := M
Nếu cây không rỗng: Xác định vị trí thêm M:
If (xR^.info) then Insert(x, R^.right);
else thông báo x đã có trên cây
Câu 2:( 2đ)
Duyệt danh sách để hiển thị các nút trong danh sách theo hình dạng cây thư mục
Câu 3: Tương tự câu 2 đề 26
- Xem thêm -