Просмотр элементов списка осуществляется последовательно, начиная с его начала. Указатель List последовательно ссылается на первый, второй и т. д. элементы списка до тех пор, пока весь список не будет пройден. При этом с каждым элементом списка выполняется некоторая операция– например, печать элемента. Начальное значение List – адрес первого элемента списка (Head). Digit – значение удаляемого элемента.
List:= Head;
While List^.Next <> nil do
begin
WriteLn(List^.Data);
List:= List^.Next; { переход к следующему элементу; аналог для массива i:=i+1 }
end;
Удаление элемента из списка.
При удалении элемента из списка необходимо различать три случая:1. Удаление элемента из начала списка.
2. Удаление элемента из середины списка.
3. Удаление из конца списка.
Удаление элемента из начала списка.
List:= Head; { запомним адрес первого элемента списка }
Head:= Head^.List; { теперь Head указывает на второй элемент списка }
Dispose(List); { освободим память, занятую переменной List^ }
Удаление элемента из середины списка.
Для этого нужно знать адреса удаляемого элемента и элемента, находящегося в списке перед ним.
List:= Head;
While (List<>nil) and (List^.Data<>Digit) do
begin
x:= List;
List:= List^.Next;
end;
x^.Next:= List^.Next;
Dispose(List);
Удаление из конца списка.
Оно производится, когда указатель х показывает на предпоследний элемент списка, а List – на последний.
List:= Head; x:= Head;
While List^.Next<>nil do
begin
x:= List;
List:= List^.Next;
end;
x^.Next:= nil;
Dispose(List);