(. ), inf .
( )
(c) .
, :
pred^.next:=p^.next;//
Dispose(p); // ,
p:=nil
(b) , , :
new(q);
q^.inf:=x;
q^.next:=nil;//
p^.next:=q; //
(. ), inf .
(d)
, , :
pred^.next:=nil;{ }
Dispose(p); { , }
p:=nil;
C
p:=Head;
Sum:=0;
while p<>nil do
begin
Sum:=Sum+p^.inf;
p:=p^.next
end;
p:=Head;
pmax:=p; //
while p<>nil do
begin
if (p^.inf > pmax^.inf) then pmax:=p;
p:= p^.next
end; // pmax
procedure PrintList(p: ref);{ p }
const str=' -> '; //
begin
while (p <> Nil) do
begin
write(str, p^.inf); // inf
p:= p^.next
end;
writeln
end;
procedure RevPrintList(p:ref);{ p }
const str=' <- '; //
begin
if (p <> nil) then
begin
RevPrintList(p^.next);
write(p^.inf, str) // inf
end;
.
,
function NewElem(p: ref; x: integer): ref; { .
p }
var q: ref;
begin
new(q); { }
|
|
q^.inf:=x; { }
q^.next:=p; { }
Result:=q; { }
end;
begin
Head:= nil; { }
repeat
write('='); readln(x); { }
if (x<>0) then
Head:=NewElem(Head, x);{ }
until (x=0);
PrintList(Head); { }
RevPrintList(Head); { }
writeln;
end.
, , , .
, , , .. (LIFO Last In First Out).
:
( Push);
( Pop);
:
(DoTop);
, (IsEmpty);
(InTop);
(Swap).