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