New(head);
head := Nil;
For i:=n DownTo 1 Do
Begin
New(q);
q^.Inf := i*i;
q^.Next := head;
head := q;
End;
После создания этого списка значением переменной head будет являться ссылка на его первый элемент. Прочитаем созданный список – выведем на экран информационные поля его элементов, начиная с первого:
q := head; указатель – на первый элемент списка
While (q<>Nil) Do пока ссылка не пустая (последний элемент)
Begin
Write(q^.Inf:6); выводим значение очередного элемента
q := q^.Next; делаем шаг по списку – берем следующий элемент
End;
В данном случае при выполнении цикла While значением указателя q будут являться поочередно ссылки на первый, второй, третий и т.д. элементы списка, и, наконец, Nil. Это происходит потому, что после присваивания
q := q^.Next;
значением переменной q будет или ссылка на следующий элемент списка, хранящаяся в ссылочной части этого текущего элемента, или Nil, если достигнут конец списка.
Пользуясь этим способом перехода от предыдущего элемента к последующему, можно просмотреть или весь список от начала до конца, или его часть.
Пример: ввести с клавиатуры последовательность целых чисел (конец ввода – число 0), сформировать из них список, определить количество введенных чисел, вывести список на экран.
Интерфейс:
Первое число: -12
Следующее число: -3
Следующее число: 5
Следующее число: 0
Введено чисел: 3
Введенные числа:
5 -3 -12
Программа:
Дата добавления: 2015-08-08; просмотров: 560;