Program Spisok;
Uses CRT;
Type TPoint = ^TElement;
TElement = Record
Inf: Integer;
Next: TPoint;
End;
Var head, q : TPoint;
Begin
ClrScr;
New(head); head -указатель на голову списка
head^.Inf := 0;количество элементов в списке
head^.Next := Nil; списка еще нет
New(q); формируем первый элемент
Write(‘Первое число: ’);
ReadLn(q^.Inf);вводим его информационную часть
If (q^.Inf=0)если ввели 0,
Then Exit; то выходим из программы
head^.Inf := 1;в списке один элемент
q^.Next := head^.Next;вставляем его в голову списка
head^.Next := q; в head^.Next адрес головы списка
Repeat
New(q);формируем очередной элемент
Write(‘Очередное число: ’);
ReadLn(q^.Inf);вводим его информационную часть
If (q^.Inf=0) если ввели 0,
Then Break;то выходим из цикла ввода
head^.Inf := head^.Inf + 1;увеличиваем счетчик элементов на 1
q^.Next := head^.Next;вставляем элемент в голову списка
head^.Next := q;в head^.Next адрес головы списка
Until (q^.Inf = 0);
WriteLn(‘Введено чисел: ’, head^.Inf);
WriteLn(‘Введенные числа:’);
q := head^.Next;текущую ссылку – на первый элемент
While (q <> Nil) Doпока не конец списка
Begin
Write(q^.Inf:5); выводим очередной элемент
q := q^.Next; ссылку – на следующий элемент
End;
WriteLn;
ReadLn;
End.
Основное преимущество связных списков перед статическими структурами данных, например, массивами, заключается в том, что их можно изменять, включая в них новые элементы или исключая ненужные, причем эти операции могут производиться в любом месте списка.
Дата добавления: 2015-08-08; просмотров: 472;