Лень разбираться в твоем коде.
Так что пишу как оно должно быть.
1. Струкрура двусвязного списка:
Код:
type
PLinkNode = ^TLinkNode;
TLinkNode = record
Data : Integer; // Ну тут данные
Prev : PLinkNode;
Next : PLinkNode;
end;
Теперь проход от "головы" к "хвосту":
Код:
procedure PrintToList_H2T(head : PLinkNode; List : TListBox);
begin
List.Items.Clear;
While head <> Nil Do
Begin
List.Items.Add(IntToStr(head.Data));
head := head.Next;
End;
end;
Ну и в обратную сторону:
Код:
procedure PrintToList_T2H(tail : PLinkNode; List : TListBox);
begin
List.Items.Clear;
While tail <> Nil Do
Begin
List.Items.Add(IntToStr(head.Data));
tail := tail.Prev;
End;
end;