Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Kỹ thuật lập trình Đề thi tham khảo môn cấu trúc dữ liệu và giải thuật 5...

Tài liệu Đề thi tham khảo môn cấu trúc dữ liệu và giải thuật 5

.PDF
4
436
70

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: 05 Câu 1( 2 điểm) Trình bày các đặc điểm của giải thuật đệ quy. Giả sử a và b là những số nguyên dương, Q là hàm số của a và b, được định nghĩa như sau: 0 nếu a=b Hãy tính Q(2,3) và Q(14,3) Câu 2( 3 điểm ) Giả sử cần quản lý một danh sách các số nguyên. Hãy viết dạng cài đặt danh sách này bằng mảng, với cấu trúc danh sách đã cài đặt, viết các chương trình con thực hiện các yêu cầu như sau: 1) Tính trung bình cộng của các số lưu trong danh sách 2) Loại bỏ ra khỏi danh sách số 3 đầu tiên tìm thấy trong danh sách 3) Hiển thị danh sách lên màn hình Câu 3( 3 điểm ) Hãy vẽ cây nhị phân biểu diễn biểu thức toán học sau: 3*4+(12+b)/6 Từ cây biểu thức vừa dựng, anh (chị) hãy: 1) Viết dạng cài đặt cây bằng con trỏ, 2) Viết thủ tục duyệt cây theo thứ tự trước, sau 3) Viết biểu thức toán học trên dưới dạng tiền tố, hậu tố? nhận xét với kết quả duyệt cây theo thứ tự trước, sau? ……………………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ộ Đáp án Câu 1 + Ba đặc điểm của giải thuật đệ quy: (1 đ) - Trong giải thuật đệ quy bao giờ cũng có lời gọi đến chính nó - Sau mỗi lời gọi đệ quy, kích thước của bài toán được thu nhỏ hơn trước - Bao giờ cũng có một trường hợp suy biến (trường hợp đặc biệt để đãm bảo tính dừng của giải thuật): bài toán được giải quyết theo một cách khác hẳn và giải thuật cũng kết thúc + Tính : Q(2,3) =0; Q(14, 5) = 2 (1 đ) Câu 2 + Dạng cài đặt danh sách bởi mảng: (0.5 đ) Const n=maxlist; Type list = record Ele: array[1..n]of integer; Count: 0..n; end; Var L: list; + Các thủ tục tương ứng với các yêu cầu: 1) Tính trung bình cộng của các số lưu trong danh sách function Trungbinh(l:list): integer; var i, tam: integer; Begin for i:=1 to n do tam:= tam+L.Ele[i]; Trungbinh:=tam; End; 2) Loại bỏ số 3 đầu tiên tìm thấy trong danh sách (1 đ) procedure Loaibo(var L: list); (0.5 đ) var k,i:integer; found: boolean; Begin found:= false; k:=1; while (not found)and(k<=L.count) do if(L.Ele[k]=3) then begin for i:=k to L.count-1 L.Ele[i]:=L.Ele[i+1]; L.count:= L.count -1; end; if (not found) then writeln(‘So 3 khong co trong danh sách để loại bỏ’); End; 3) Hiển thị danh sách lên màn hình (1 đ) procedure Hienthi(l:list); var i: integer; begin writeln(‘Danh sách cac so nguyen la:’); for i:=1 to l.count do write(l.Ele[i]:6); end; Câu 3 Dựng cây: + (0.5 đ) * 3 / 4 + 12 1) Dạng cài đặt: (0.5 đ) 6 b do Type Tree=^nut; Nut= record Info: string; Left, right: Tree; End; Var T: Tree; 2) Các thủ tục duyệt cây theo thứ tự trước, sau: Giả sử xét cây gốc T, các thủ tục duyệt cây T  Thủ tục duyệt cây theo thứ tự trước: (0.5 đ) Procedure Preorder(T: Tree); Begin Write(T^.info); Preorder(T^.left); Preorder(T^.right); End;  Thủ tục duyệt cây T theo thứ tự sau: (0.5 đ) Procedure postorder(T: Tree); Begin Postorder(T^.left); Postorder(T^.right); Write(T^.info); End; 2) Biểu thức tiền tố , hậu tố và nhận xét: b) + Biểu thức tiền tố: (0.5 đ) +*34/+12b6 => Biểu thức trùng với kết quả duyệt cây theo thứ tự trước + Biểu thức hậu tố: (0.5 đ) 34*+12b+6/ => Biểu thức trùng với kết quả duyệt cây theo thứ tự sau
- Xem thêm -