Đă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 23...

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

.PDF
4
382
147

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: 23 Câu 1 (2 điểm) Định nghĩa từ điển, các phép toán trên từ điển, trình bày phương pháp cài đặt từ điển bởi bảng băm mở (tư tưởng, dạng cài đặt). Cho ví dụ minh họa Câu 1(3 điểm) Khái niệm cây? Trình bày cách cài đặt cây bằng con trưởng và em liền kề của mỗi đỉnh sử dụng mảng. Vẽ ra một cây bất kỳ làm ví dụ minh họa. Viết thủ tục tìm con trưởng và em liền kề của đỉnh thứ k trên cây T (k là một số nguyên dương nhập từ bàn phím; giả sử các đỉnh trên cây đã được đánh số theo một thứ tự nào đó) Câu 2 ( 3 điểm) Cho 3 danh sách móc nối đơn, lần lượt có nút đầu tiên trong danh sách được trỏ bởi L1, L2, L3. Anh(chị) hãy: 1) Viết dạng cài đặt của danh sách 2) Hãy viết các giải thuật: a) Ghép danh sách L2 vào danh sách L1 và cho con trỏ L trỏ tới nút đầu danh sách tổng hợp b) Ghép danh sách L3 vào trước danh sách L2 và L1 vào sau L2 và cho con trỏ L trỏ tới danh sách tổng hợp 3) Nhận xét về ưu nhược điểm của cách cài đặt trên ( Giả sử cả 3 danh sách đều khác rỗng ). ……………………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ộ Mã đề 23 Câu 1 + Định nghĩa từ điển: (0.5 đ) Mô hình dữ liệu tập hợp, nhưng chi xét đến các phép toán thêm, xóa, tìm kiếm được gọi là kiểu dữ liệu trừu tượng từ điển (dictionary). + Cài đặt từ điển bởi bảng băm mở: (0.5 đ) const N= .. Type pointer = ^ ele; Ele= Record Key: keytype; Next: pointer; End; Dictionary = array[0..N-1] of pointer; Var T: Dictionary; + Tư tưởng của bảng băm mở trong việc cài đặt từ điển: - (0.5 đ) Phân chia tập hợp đã cho thành một số cố định các lớp(giả sử N lớp được đánh số từ 0 -> N-1) - Sử dụng một mảng T có chỉ số chạy từ 0 đến N-1 để chứa các phần tử trong tập hợp, mỗi thành phần T[i] là một “rổ” đựng các phần tử thuộc lớp thứ I, các phần tư trong mỗi lớp được tổ chức thành một danh sách liên kết, T[i] là con trỏ trỏ tới phần tử đầu tiên trong lớp thứ i. T chính là bảng băm mở + Ví dụ: Tự cho (0.5 đ) Câu 2 + Cây bao gồm một tập hợp hữư hạn các đỉnh, giữa các đỉnh có một mối quan hệ gọi là quan hệ phân cấp cha – con (0.5 đ) + Cài đặt cây bởi con trưởng và em liền kề của mỗi đỉnh sử dụng mảng: (0.5 đ) const n= 50; type nut= record eldest, nextsibling: 0..n; infor:Item; end; tree=array[1..n]of nut; var T: tree; + Vẽ một cây, minh hoạ bằng hình ảnh: (1 đ) a b e c d ===>hình ảnh cây trong bộ nhớ: f 2 a 0 5 b 3 0 c 4 0 d 0 0 e 6 0 f 0 + Thủ tục tìm con trưởng của đỉnh k trên cây T: Contruong:=T[k].eldest; (1 đ) + Thủ tục tìm em liền kề của đỉnh thứ k trên cây T: Emlienke:=T[k].nextsibling; (1 đ) Câu 3 a) Dạng cài đặt (1 đ) b) Ghép L2 vào sau L1, L trỏ tới danh sách kết quả: (1 đ) Procedure Ghep1(L1, L2, var L): if (L2 = nil) then L:=L else if(L1 = nil) then L:= L2 else Begin M:=L1; While(M^.next<>nil)do M:=M^.next; M^.next := L2; L:= L1; End; c) Ghép L3 vào trước L2, L1 vào sau L2, L trỏ tới danh sách kết quả(1 đ) Procedure Ghep2(L1, L2, L3, var L): Begin Ghep1(L2, L1, M); Ghep1(L3, M, L ); End;
- Xem thêm -

Tài liệu liên quan