program test;
uses crt;
type
ptr=^list;
list=record
a:integer;
next:ptr;
end;
var
start,p,h1,h2:ptr;
x:integer;
begin
clrscr;
start:=nil;
write('Enter x= ');
readln(x);
while x<>0 DO
begin
new(p);
p^.next:=nil;
p^.a:=x;
if start=nil Then
begin
start:=p;
end
else
begin
if start^.a>x then
Begin
p^.next:=start;
start:=p;
end
else
begin
h1:=start;
h2:=start;
while (h2^.a<x) And (h2<> nil ) do
Begin
h1:=h2;
h2:=h2^.next;
end;
if h2=nil then
h1^.next:=p
else
begin
p^.next:=h2;
h1^.next:=p;
end;
end;
end;
write('Enter x= ');
readln(x);
end;
p:=start;
while p<> nil do
begin
write(p^.a:5);
p:=p^.next;
end;
readln;
end.