Создание списка путем добавления элементов в конец списка. Общий случай:
Код:
Procedure Init(Var u : Ukazatel);
Var
x : Ukazatel;
Digit : integer; {Значение информационной части элемента списка}
Begin
Writeln('Введите список ');
u := Nil; {Список пуст}
Writeln ('Введите элементы списка. Конец ввода 0');
Read (Digit);
if Digit <> 0
then {Формируем и вставляем первый элемент списка}
Begin
New(x);
x^.Next := Nil;
x^.Data := Digit;
u := x;
Read (Digit);
while Digit<>0 do
Begin
New(x^.Next); {Формируем и вставляем элемент в конец списка}
x := x^.Next;
x^.Next := Nil;
x^.Data := Digit;
Read(Digit);
End;
End;
Writeln;
End;
или
Код:
Procedure Init(Var u : Ukazatel);
Var
x, y : Ukazatel;
Digit : integer;
Begin
Writeln('Введите список ');
u := Nil;
Writeln ('Введите элементы списка. Конец ввода 0');
Read (Digit);
while Digit<>0 do
Begin
New(y);
y^.Next := Nil;
y^.Data := Digit;
if u=Nil
then
u := y
else
x^.Next := y;
x := y;
Read(Digit);
End;
Writeln;
End;
Процедура удаления элементов из списка в общем случае:
Код:
Procedure Del(Digit : integer; Var u : Ukazatel );
Var
x, dx : UKAZATEL ;
Begin
x := u;
while x<>Nil do
if x^.Data=Digit
then
Begin
if x=u
then
Begin
u := u^.Next;
Dispose(x);
x := u;
End
else
Begin
dx^.Next := x^.Next;
Dispose(x);
x := dx^.Next;
End;
End
else
Begin
dx := x;
x := x^.Next;
End;
End;
P.s. Извини, переделать под твою прогу нет времени.