New(q);

q^.Inf := -12;

 

Сейчас этот элемент является первым (и пока единственным), поэтому одновременно и последним элементом списка. Поэтому ссылочная часть его должна быть равна head, имеющему значение Nil – за этим элементом других элементов нет:

q^.Next := head;

 

а переменная head должна уже содержать ссылку на этот первый созданный элемент списка:

head := q;

Таким образом, переменная head сейчас хранит адрес ячейки памяти, созданной операцией New(q), в которой записан первый элемент списка -12.

Вставим перед ним элемент, равный -3: определим для него место в памяти и информационную часть:

New(q);

q^.Inf := -3;

 

При этом в памяти сохраняется уже созданный элемент списка, ссылка на который хранится в head :

 

 

Вновь созданный элемент будет первым элементом списка, поэтому ссылку head на последний (старый первый) элемент поместим в его ссылочную часть:

q^.Next := head;

 

 

а в освободившуюся переменную head поместим ссылку на него – новый первый элемент списка (эта переменная всегда должна указывать на голову списка):

head := q;

 

Наконец, создадим первый (в порядке следования) элемент списка, равный 5:

New(q);

q^.Inf := 5;

 

Поместим в его ссылочную часть ссылку на ранее созданный (следующий за ним в списке) элемент, равный -3, а в переменную head – ссылку на него самого:

q^.Next := head;

head := q;

 

В результате создан связный список, в каждом элементе которого хранится адрес (ссылка) следующего за ним элемента, а ссылка на первый элемент списка находится в переменных head и q.

Ссылочное поле (в нашем случае .Next) само является указателем, поэтому, например, значением переменной head^.Next^.Inf будет являться информационное поле второго по списку элемента, т.е. -3, а значением переменной head^.Next^.Next - ссылочное поле этого элемента, т.е. ссылка на третий элемент списка. Так, наращивая переменную head, можно добраться до конца списка.

Таким образом, рассмотренный способ построения списка “с хвоста” заключается в создании пустого списка и повторяющемся выполнении ряда однотипных шагов, добавляющих в начало списка новые элементы.

Например, программа построения списка, элементами которого являются квадраты целых чисел от 1 до n, имеет вид (воспользуемся имеющимся описанием переменных):








Дата добавления: 2015-08-08; просмотров: 485;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.