Вод имеется код задачи для односвязного линейного помогите пожалуйсто переделать его в кольцевой
Код:
uses crt;
type
TList = ^List;
List = record
znach : integer;
Next: TList;
end;
procedure CreateList(var L: TList);
begin
L := nil;
end;
procedure DeleteList(var L: TList);
var
L1, L2: TList;
begin
if L = nil then exit;
if L^.Next = L
then begin
Dispose(L);
exit;
end;
L2 := L;
L := L^.Next;
while L <> L2 do
begin
L1 := L;
L := L^.Next;
Dispose(L1);
end;
Dispose(L2);
end;
procedure AddToList(var L: TList; S : integer);
var
L1, L2: TList;
begin
L1 := L;
if L1 = nil
then begin
new(L1);
L1^.Znach := S;
L := L1;
L^.Next := L;
exit;
end;
while L1^.Next <> L do
L1 := L1^.Next;
new(L2);
L2^.Znach := S;
L2^.Next := L;
L1^.Next := L2;
end;
procedure OutList(L: TList);
var
L1: TList;
begin
if L = nil then exit;
Writeln(L^.Znach);
L1 := L^.Next;
while L1 <> L do
begin
Writeln(L1^.Znach);
L1 := L1^.Next;
end;
end;
var
ListExample: TList;
i: integer;
begin
clrscr;
CreateList(ListExample);
writeln('Введите числа!0 - конец ввода');
read(i);
while i<>0 do
begin
AddToList(ListExample,i);
read(i);
end;
writeln;
OutList(ListExample);
readln;
readln;
end.