Добавление элемента в список
else begin // новый узел после pre, перед curr node^.next: = рre^.next; рrе^.next: = node; end; Edit1.text: = ''; Edit2.text: = ''; Edit1.SetFocus; end; // отобразить список procedure TForm1.Button2Click(Sender: TObject); var curr: TPStudent; // текущий элемент списка n:integer; // длина (кол-во элементов) списка at:string; // строковое представление списка begin n: = 0; st: = ''; curr: = head; while curr <> NIL do begin n: = n+l; st: = st+curr^.f_name+' '+curr^.l_name+#13; curr: = curr^.next; end; if n <> 0 then ShowMessage('Список: '+ЦЗ+st) else ShowMessage('В списке нет элементов.'); end; // начало работы программы procedure TForm1.FormActivate(Sender: TObject); begin head: = NIL; // список пустой end; end.
Процедура TFormi.ButtoniClick создает динамическую переменную-запись, присваивает ее полям значения, соответствующие содержимому полей ввода диалогового окна, находит подходящее место для узла и добавляет этот узел в список, корректируя при этом значение указателя узла next, после которого должен быть помещен новый узел.
Рис. 8.11. Пример упорядоченного списка, сформированного программой
Вывод списка выполняет процедура TForml.Button2Сlick, которая запускается нажатием кнопки Показать. После запуска программы и ввода нескольких фамилий, например, в такой последовательности: Иванов, Яковлев, Алексеев, петров, список выглядит так, как показано на рис. 8.11.