Очереди в Паскале

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Andres, 27 Dec 2009.

  1. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    И еще одна...

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

    Retro New Member

    Joined:
    4 Jun 2009
    Messages:
    3
    Likes Received:
    3
    Reputations:
    0
    Создаешь запись 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.
    

    Как-то так, писал впопыпах и ночью. Это мы создали очередь, удаление из конца доделай сам.
     
    #2 Retro, 28 Dec 2009
    Last edited: 28 Dec 2009
    2 people like this.
  3. n1ghtstalker

    n1ghtstalker Elder - Старейшина

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    по моему ещё ячейки памяти не выделенны под first,second,temp.
     
    1 person likes this.