đề 30

Câu 1: Tương tự câu 1 đề 29

Câu 2:

a) Dạng cài đặt của danh sách: (1 đ)

Type Nut = record

infor: integer;

' Next: ^ nut;

end;

List = ^Nut;

Var L, L1, L2, L3: List;

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;

d) Loại bỏ tất cả các số 0 ra khỏi danh sách L(1 đ)

Kiểm tra xem danh sách L có rỗng hay không? Nếu rỗng trở về chương trình chính, nếu không rỗng thực hiện loại bỏ như sau:

- Sử dụng con trỏ phụ q duyệt tử đầu đến cuối danh sách, nếu q^.info =0 thì gọi thủ tục loại bỏ phần tử được trỏ bởi q trong danh sách

- Viết thủ tục loại bỏ phần tử được trỏ bởi con trỏ q trong danh sách L:

a) Giả sử đã biết vị trí con trỏ q

b) Sử dụng con trỏ phụ p di chuyển đến vị trí trước q:

P:= L;

While p^.next<> q do p:= p^.next;

c) Loại bỏ phần tử ở vị trí q:

p^.next := q^.next;

dispose(q);

q:= p^.next;// lưu vị trí tiếp theo vị trí loại bỏ để còn loại bỏ tiếp

e) Hiển thị danh sách L(1 đ)

procedure Hienthi(l:list);

var i: integer;p: list;

begin

writeln('Danh sách cac so nguyen la:');

p: =L;

while p<>nil do

begin

write(p^.info:6);

p:=p^.next;

end;

end;

Câu 3

Tương tự câu 3 đề 28

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: