Лекция "Пример создания списка в обратном порядке "

  • Лекции
  • docx
  • 14.03.2017
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Обратим внимание на вызов процедуры 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.