Обратим внимание на вызов процедуры new(nach). В результате этого вызова в динамической памяти отводится место для переменной типа record, которая в нашем случае состоит из двух полей: для хранения целочисленного значения и значения указателя, т.е. адреса. Здесь важно представлять, что после того, как переменная nach (или какая другая) создана в динамической памяти, тем самым имеем ее адрес, который сам является именем переменной, т.е. nach. Если у нас имеется другая переменная того же типа, tek, то мы знаем также и ее адрес, это tek. Поэтому, если в адресную часть переменной nach занести адрес tek, тем самым мы свяжем элементы nach и tek: nach^.link:=tek.
22.2.docx
Пример создания списка в обратном порядке
Рис. 2. Пример создания списка в обратном порядке
Var i,n,a:integer;
tek,nach:Ptr;
Begin
tek:=nil;
readln(n);
for i:=1 to n do
begin
readln(a);
new(nach);
nach^.d:=a;
nach^.link:=tek;{цепочка присоединяется к nach}
{*} tek:=nach;
end;
end;
Обратим внимание на вызов процедуры new(nach). В результате этого вызова в
динамической памяти отводится место для переменной типа record, которая в нашем
случае состоит из двух полей: для хранения целочисленного значения и значения указателя,
т.е. адреса. Здесь важно представлять, что после того, как переменная nach (или какая
другая) создана в динамической памяти, тем самым имеем ее адрес, который сам является
именем переменной, т.е. nach. Если у нас имеется другая переменная того же типа, tek, то
мы знаем также и ее адрес, это tek. Поэтому, если в адресную часть переменной nach
занести адрес tek, тем самым мы свяжем элементы nach и tek: nach^.link:=tek.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с
договором-офертой сайта. Вы можете
сообщить о нарушении.
Продолжая использовать наш сайт, вы соглашаетесь с политикой использования Cookies. Это файлы в браузере, которые помогают нам сделать ваш опыт взаимодействия с сайтом удобнее.