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

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

.PDF
4
215
131

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: 28 Câu 1( 1 điểm) Nêu khái niệm ngăn xếp? ứng dụng ngăn xếp? Câu 2 ( 5 đ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. Anh (chị) hãy: 1) Viết dạng cài đặt của cây thư mục bởi danh sách kế tiếp như trên. Cho ví dụ và minh họa bằng hình ảnh 2) Viết giải thuật đếm xem trên cây có tất cả bao nhiêu thư mục 3) Viết giải thuật xoá thư mục “Bai tap” và tất cả các thư mục con trong nó 4) Viết chương trình con hiển thị cây thư mục này ra màn hình. Câu 3 (2 điểm) Hãy dùng stack ở dạng liên kết đơn (cài đặt ngăn xếp bởi con trỏ) để đảo ngược vị trí của tất cả các phần tử ở vị trí lẻ trong một DSLK đơn, có nút đầu danh sách được trỏ bởi con trỏ L; các phần tử trong danh sách là các số nguyên ……………………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 - Ngăn xếp là một danh sách tuyến tính trong đó phép bổ sung một phần tử vào ngăn xếp và phép loại bỏ một phần tử ra khỏi ngăn xếp đều được thực hiện ở một đầu, đầu đó gọi là đỉnh của ngăn xếp (0.5 đ) - Cấu trúc ngăn xếp thường được áp dụng cho những bài toán có trình tự truy xuất ngược với trình tự lưu trữ. Ví dụ: (0.5 đ) + Bài toán chuyển đổi cơ số, tìm ước số chung của hai số nguyên, bài toán tính giá trị biểu thức, .... + Thường áp dụng trong một số bài toán tìm đường đi trong lý thuyết đồ thị (lưu vết đường đi) + làm môi trường lưu trữ các biến toàn cục và cục bộ của các thủ tục trong chương trình dịch của ngôn ngữ lập trình. ..... Câu 2 1) Dạng cài đặt, cho ví dụ và minh họa bằng hình ảnh(1.5 đ) + Dạng cài đặt: Const n = ….; Type Nut = Record TenThuMuc: String; Vitri: 0..n; End; List = Array[1..n] of Nut; Var T: List; + Ví dụ: Cho cây thư mục như sau: 1 \users \BT\ 2 3 Tin\ Toan\ 5 4 BT1 6 Bt2 7 Bt3 8 BT1 BT2 Hình ảnh cây thư mục trong bộ nhớ MT với các cài đặt trên như sau: Số thứ tự 1 2 3 4 5 6 7 8 9 … n TenThuMuc \users \BT\ Tin\ Toan\ BT1 Bt2 Bt3 BT1 BT2 Nil … nil Vitri 0 1 1 2 2 2 3 3 0 0 2) Đếm số lượng các thư mục trên cây(1 đ) Fuction Dem(T: List): integer; Var i: 0..n; Begin i := 0; While (T[i].TenThuMuc<>nil) do i:=i+1; dem:=i; End; 3) Xóa thư mục bài tập và tất cả các thư mục con trong nó - (1.5 đ) Duyệt danh sách để tìm đến thư mục bài tập, xác định số thứ tự của thư mục này, giả sử là i. Nếu không tim thấy thì thông báo không có thư mục để xóa, nếu tìm thấy: a) Viết thủ tục loại bỏ thư mục con của i có vị trí là i là vị trí tìm thấy đầu tiên b) Lặp đi lặp lại bước a) Cho đến khi xóa hết các thư mục con có vị trí là i c) Xóa thư mục cha thứ i 1) Hiện cây thư mục lên màn hình (1đ) Duyệt danh sách từ đầu đến đêm, duyệt đến thư mục nào thì hiện thị tên và vị trí cha của thư mục đó Câu 3 (2 điểm) Gợi ý cách làm: + Lần lượt tách các phần tử ở vị trí lẻ trong danh sách L, đưa vào trong ngăn xếp cho đến khi duyệt hết danh sách + Lần lượt lấy từng phần tử trong ngăn xếp ra, gắn vào các vị trí lẻ trong danh sách L.
- Xem thêm -

Tài liệu liên quan