ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Очереди в Паскале
  #1  
Старый 27.12.2009, 23:11
Andres
Постоянный
Регистрация: 04.04.2008
Сообщений: 527
Провел на форуме:
1494768

Репутация: 272


По умолчанию Очереди в Паскале

И еще одна...

Очередь задана структурой
type Person=......
Key:.....//ключ
Next:.....//адреса следующего элемента
............
var First, Pn: Person;
Очередь существует, количество элементов >=2.
Конечный элемент очереди имеет P^.next=nil,адреса(хвоста) входу очереди - First. Навести фрагмент программы, с помощью которого из очереди будет вытянуто дежурный элемент(последний при организации) и его адрес будет присвоен переменной Pn, выполнить необходимую переадресацию после исключения элемента.
Использовать исключительно описаны переменные.
 
Ответить с цитированием

  #2  
Старый 28.12.2009, 04:42
Retro
Новичок
Регистрация: 04.06.2009
Сообщений: 3
Провел на форуме:
73724

Репутация: 6
Отправить сообщение для Retro с помощью ICQ Отправить сообщение для Retro с помощью Yahoo
Smile

Создаешь запись type Person = record .где внутри есть указатель на следующий элемент этого-же типа( объявленный выше). Перед этим создаешь тип - указатель на эту запись(он как раз и описан внутри записи).

Код:
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.

Как-то так, писал впопыпах и ночью. Это мы создали очередь, удаление из конца доделай сам.

Последний раз редактировалось Retro; 28.12.2009 в 12:55..
 
Ответить с цитированием

  #3  
Старый 28.12.2009, 09:18
n1ghtstalker
Познающий
Регистрация: 28.09.2008
Сообщений: 65
Провел на форуме:
152084

Репутация: 8
По умолчанию

Цитата:
Сообщение от Retro  
Создаешь запись type Person = record .где внутри есть указатель на следующий элемент этого-же типа( объявленный выше). Перед этим создаешь тип - указатель на эту запись(он как раз и описан внутри записи).

Код:
type
       Pperson = ^Person; // создаем указатель на тип Person;
              Person= record
              Key: integer       //ключ? 
              Next: Pperson   //адреса следующего элемента
       end; // закрываем запись.

var 
       Temp, First, Second, 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 
                     second^.next :=temp;
              Second :=temp;
       
       end;
temp^.next=Nill;
End.
Как-то так, писал впопыпах и ночью.
по моему ещё ячейки памяти не выделенны под first,second,temp.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишем консольный клиент для Web-сервиса на примере Hash Cracking Bot (HCB) -=lebed=- Авторские статьи 18 29.10.2009 22:32
Задачи на паскале. SHAXID О Работе 3 26.05.2009 14:33
Напишу курсовую, диплом на Паскале Paladin34 Разное - Покупка, продажа, обмен 0 01.04.2009 12:43
Создай свою игру на паскале (часть 1) fduck Болталка 47 22.03.2009 01:26



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ