Đề 05
1/2
Đề thì tuyển Nghiên cứu sinh và Cao học 1995 (Đề B)
Môn: Phương pháp lập trình
Thời gian: 180 phút – Được sử dụng tài liệu Bài 1. Cho khai báo kiểu của một danh sách tuyến tính móc nối như sau:
Type tro = ^kieupt;
Kieupt=record
Giatri:interger;
Tieptheo:tro;
End;
a. Cho:
Var ds,q:tro;
Trong đó ds trỏ tới đầu của một danh sách tuyến tính. Hãy viết một thủ tục:
Procedure LayMax(var ds,q:tro);
Cho phép lấy phần tử có giá trị lớn nhất ra khỏi danh sách tuyến tính ds,
phần tử đó sẽ được trỏ bới q.
b. Cho:
Var ds1,ds2:tro;
Trong đó ds1 trỏ đầu của một danh sách tuyến tính chưa được sắp xếp theo
trường giá trị, còn ds2 thì đã được khởi gán ds2:=NIL. Hãy viết một thủ tục:
Procedure SapChon(var ds1,ds2:tro);
Cho phép chọn dần các phần tử trong ds1 từ giá trị lớn đến bé, đưa vào ds2
để rốt cục thì ds1=nil, còn ds2 trỏ tới một danh sách tuyến tính gồm mọi
phần tử cũ của ds1, nhưng đã sắp theo thứ tự của trường giá trị.
end;
Một danh sách móc nối trong từđiển đều phải sắp thứ tự (tăng dần) và tất cả
các từ phải khác nhau.
b. Viết một thủ tục hiển thị tất cả các từ ra màn hình theo thứ tự tăng dần.
c. Viết một thủ tục bổ sung một từ mới, bằng cách đọc từ đó từ bàn phím, tìm
nó trong Từđiển (dùng phép tìm kiếm tuần tự trong danh sách móc nối chứa
dữ liệu tăng dần).
- Nếu tìm thấy, hiểu thị thông báo “Đã có trong từ điển”
- Nếu không tìm thấy, chèn nó vào trong Từđiển ở vị trí thích hợp.
Trình bày: Trần Hoài Nhân