Динамические структуры данных. Задание практикума. Язык Паскаль. Вылиток А.А - 27 стр.

UptoLike

- 27 -
procedure init_queue(var Q: queue);
{ начальная установка очереди }
begin new(Q.front);{создание заглавного звена}
Q.front.next:=nil;
Q.rear := Q.front;
end; {init_queue}
function empty
_queue(Q: queue):boolean;
{ возвращает истину, если очередь пуста, иначеложь}
begin
empty
_queue:= Q.rear = Q.front
end; {empty_queue}
procedure enqueue(var Q: queue; x:elemtype);
{поставить в очередь Q элемент х}
begin
new(Q.rear.next);
Q.rear:= Q.rear.next;
Q.rear.elem:=x;
Z
{ enqueue(Z,1) }
{ init_queue(Z) }
Z
nil
{ enqueue(Z,2) }
1
Z
2
nil
{ dequeue(Z,y) }
Z
2 nil
1
Z
1 nil
Рис. 2а
1
y
Z                     { init_queue(Z) }      Z


                                                             nil

Z

                         1    nil             { enqueue(Z,1) }


                                    Z

     { enqueue(Z,2) }
                                                         2    nil


                                              1

Z                         y    1

                         2    nil                { dequeue(Z,y) }
          1

                               Рис. 2а

    procedure init_queue(var Q: queue);
    { начальная установка очереди }
      begin new(Q.front);{создание заглавного звена}
             Q.front↑.next:=nil;
             Q.rear := Q.front;
      end; {init_queue}

    function empty_queue(Q: queue):boolean;
     { возвращает истину, если очередь пуста, иначе – ложь}
      begin
        empty_queue:= Q.rear = Q.front
      end; {empty_queue}

    procedure enqueue(var Q: queue; x:elemtype);
    {поставить в очередь Q элемент х}
     begin
      new(Q.rear↑.next);
      Q.rear:= Q.rear↑.next;
      Q.rear↑.elem:=x;


                               - 27 -