Эту тему я понял неважно так что прогрмму полностью написать не смог.
Написал все процедуры по созданию списка, выводу на экран, поиска первого и последнего элемента списка. А вот как заменть первый и последний элемент я понять не могу. Подскажите пожалуйста.
Program pointers;
TYPE ElementPointer=^Element;
Element=record
datum:integer;
next:ElementPointer;
end;
VAR
list,l,k:ElementPointer;
n,x,a,b:integer;
Procedure NewElement(var l:ElementPointer; i:integer);
var q,p:ElementPointer;
begin
new(q);
q^.datum:=i;
q^.next:=nil;
if l=nil
then l:=q
else
begin
P:=l;
while p^.next<> nil do
p:=p^.next;
p^.next:=q;
end;
end;
Procedure PrintList(l:ElementPointer);
begin
if l=nil
then begin
writeln('<<< END >>>')
end
else begin
Writeln(l^.datum);
PrintList(l^.next)
end
end;
Procedure Poisk_poslednego(l:ElementPointer);
begin
if l<>nil
then begin
x:=l^.datum;
Poisk_poslednego(l^.next)
end
end;
Procedure Poisk_pervogo(l:ElementPointer);
begin
if l<>nil
then begin
b:=l^.datum;
end;
end;
BEGIN
list:=nil;
Writeln('Input numbers (input 0 for exit)');
readln(n);
while n<>0 do
begin
NewElement(list,n);
readln(n);
end;
Poisk_poslednego(list);
Poisk_pervogo(list);
Writeln('b= ',b,' x= ',x);
PrintList(list);
Readln
END.