Лекция: Задачи включения элемента в линейный однонаправленный список без головного элемента.
Графическое представление выполняемых действий дано на рис. 21
Формирование пустого списка.
Procedure Create_Empty_List ( var first: el);
Begin
first = nil;
End;
Формирование очередного элемента списка.
Procedure Create_New_Elem(var p: el);
Begin
New (p);
Writeln ('введите значение первого информационного поля: ');
Readln ( p^.inf1 );
Writeln ('введите значение второго информационного поля:'); Readln ( p^.inf2 );
p^.next := nil;
{все поля элемента должны быть инициализированы}
End;
Подсчет числа элементов списка.
Function Count_el(First:el):integer;
Var
K: integer;
q: el;
Begin
If First = Nil then
k:=0 {список пуст}
Else
begin {список существует}
k:=1; {в списке есть хотя бы один элемент}
q:=First;
{перебор элементов списка начинается с первого}
While q^.Next <> Nil do
Begin
k:=k+1;
q:=q^.Next;
{переход к следующему элементу списка}
End;
End;
Count_el:=k;
End;
ПРИМЕЧАНИЕ: аналогично может быть написана процедура, например, печати списка, поиска адреса последнего элемента и др.