И еще одна... Очередь задана структурой type Person=...... Key:.....//ключ Next:.....//адреса следующего элемента ............ var First, Pn: Person; Очередь существует, количество элементов >=2. Конечный элемент очереди имеет P^.next=nil,адреса(хвоста) входу очереди - First. Навести фрагмент программы, с помощью которого из очереди будет вытянуто дежурный элемент(последний при организации) и его адрес будет присвоен переменной Pn, выполнить необходимую переадресацию после исключения элемента. Использовать исключительно описаны переменные.
Создаешь запись type Person = record .где внутри есть указатель на следующий элемент этого-же типа( объявленный выше). Перед этим создаешь тип - указатель на эту запись(он как раз и описан внутри записи). Code: type Pperson = ^Person; // создаем указатель на тип Person; Person= record Key: integer //ключ? Next: Pperson //адреса следующего элемента end; // закрываем запись. var Temp, First, Pn: PPerson; N,i:byte; Begin First := Nil; writeln('N?'); readln(N); for i :=1 to N do begin Getmem(Temp, Sizeof(Person)); //выделили память. If First = nil then First:=Temp else Pn^.next :=Temp; Pn :=Temp; end; temp^.next=Nill; //последний элемент конечный End. Как-то так, писал впопыпах и ночью. Это мы создали очередь, удаление из конца доделай сам.