home *** CD-ROM | disk | FTP | other *** search
/ Game Killer / Game_Killer.bin / 291.QUEUE.INC < prev    next >
Text File  |  1991-07-08  |  1KB  |  48 lines

  1. const
  2.   maxQueue = 600;
  3. type
  4.   Queueitem = record dad, son : sector; end;
  5.   Queue = record
  6.             front, rear : 0..maxQueue;
  7.             data        : array [1..maxQueue] of Queueitem;
  8.           end;
  9.  
  10. procedure serve( var q : queue; var e1, e2 : sector );
  11. begin
  12.   if q.front = 0 then
  13.     writeln('serving from an empty queue!')
  14.   else
  15.     begin
  16.       e1 := q.data[ q.front ].dad;
  17.       e2 := q.data[ q.front ].son;
  18.       if q.front = maxQueue then
  19.         q.front := 1
  20.       else
  21.         q.front := q.front + 1;
  22.       if q.front = q.rear then  { empty queue }
  23.         q.front := 0;
  24.     end; {else}
  25. end; {serve}
  26.  
  27. procedure enqueue( var q : queue; e1, e2 : sector );
  28. begin
  29.   if q.front = 0 then
  30.     begin
  31.       q.front := 1;
  32.       q.rear := 2;
  33.       q.data[1].dad:= e1;
  34.       q.data[1].son := e2;
  35.     end {if}
  36.   else if q.front = q.rear then
  37.     writeln('queue full!')
  38.   else
  39.     begin
  40.       q.data[ q.rear ].dad := e1;
  41.       q.data[ q.rear].son := e2;
  42.       if q.rear = maxQueue then
  43.         q.rear := 1
  44.       else
  45.         q.rear := q.rear + 1;
  46.     end; {else}
  47. end; {enqueue}
  48.