Честно говоря вопроса так и не понял.
Код:
Program Project1;
...
type
PList=^TList;
TList=record
s:string;
Next,Prev:PList;
end;
procedure AddToList;
var first,Curent,NewI:PList;
s:string;
begin
repeat
readln(s);
new(NewI);
if First=nil then First:=NewI;
NewI^.s:=s;
NewI^.Prev:=Curent;
if Curent<>nil then Curent^.Next:=NewI;
Curent:=NewI;
until s='';
end;
begin
AddToList;
ReadLn;
end.