Составители:
25
Операция поиска элемента в списке заключается в последователь-
ном просмотре всех элементов списка до тех пор, пока текущий эле-
мент не будет содержать заданное значение или пока не будет достиг-
нут конец списка. В последнем случае фиксируется отсутствие искомо-
го элемента в списке (функция принимает значение false). Входными
параметрами являются значение, которое должен содержать искомый
элемент и указатель на список. В качестве выходного параметра пере-
дается указатель, который устанавливается на найденный элемент или
остается без изменений, если элемента в списке нет:
function Find_LineSingleList(DataElem: TypeData;
var ptrHead, ptrCurrent: PElement): boolean;
{Поиск элемента в линейном однонаправленном списке}
var
ptrAddition:PElement; {Дополнительный указатель}
begin
if (ptrHead <> nil)
then begin {Если существует список}
ptrAddition := ptrHead;
while (ptrAddition <> nil) and
(ptrAddition^.Data <> DataElem) do
{пока не конец списка и не найден элемент}
ptrAddition := ptrAddition^.Next;
{Если элемент найден,
то результатом работы функции является – true}
if ptrAddition <> nil then begin
Find_LineSingleList := true;
ptrCurrent := ptrAddition;
end else begin
Find_LineSingleList := false;
end;
end else begin
Find_LineSingleList:= false;
end;
end;
Можно отметить, что алгоритмы просмотра и поиска будут коррект-
но работать без дополнительных проверок и в случае, когда список пуст.
Операция удаления элемента линейного однонаправленного списка
осуществляет удаление элемента, на который установлен указатель
текущего элемента. После удаления указатель текущего элемента ус-
Страницы
- « первая
- ‹ предыдущая
- …
- 23
- 24
- 25
- 26
- 27
- …
- следующая ›
- последняя »