Показать сообщение отдельно
  #2  
Старый 04.01.2021, 11:15
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Лень разбираться в твоем коде.
Так что пишу как оно должно быть.

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;
Ответить с цитированием