queue.pas

来自「queue algorithm in pascal」· PAS 代码 · 共 104 行

PAS
104
字号
program KOLEJKA_RM;

uses crt;

type
 Wskaznik = ^Element;
  Element = RECORD
             liczba : integer;
             nast : Wskaznik;
end;

var
 pocz,kon : Wskaznik;
 liczba : integer;
 znak : char;

{.....................................................}

procedure Dodaj(var pocz,kon: Wskaznik ; liczba: integer);
  var
   tmp: Wskaznik;
  begin
   new(tmp);
   tmp^.liczba:=liczba;
   tmp^.nast:=nil;
     if pocz=nil then
       pocz:=tmp
     else
       kon^.nast:=tmp;
   kon:=tmp;
  end;


procedure Zdejmij(var pocz: Wskaznik ;var liczba: integer);
  var
   tmp: Wskaznik;
  begin
   if pocz<>nil then
     begin
      tmp:=pocz;
      liczba:=pocz^.liczba;
      pocz:=pocz^.nast;
      dispose(tmp);
     end
  end;

procedure Wypisz(var pocz: wskaznik);
var
 tmp:wskaznik;
begin
 tmp:= pocz;
 while tmp<>nil do
  begin
    Writeln(tmp^.liczba);
    tmp:= tmp^.Nast;
  end;
end;
{.....................................................}


begin

 clrscr;
 writeln('*****************');
 writeln('*     KOLEJKA   *');
 writeln('*****************');
 writeln;
 writeln ('D - dodaj');
 writeln ('Z - zdejmij');
 writeln ('W - wypisz');
 writeln ('K - koniec');
 writeln;
 pocz:=nil;
 repeat
  znak :=UpCase(Readkey);
  case Znak of
 'D' : begin
         write (' Podaj liczbe: '); Readln(liczba);
         Dodaj(pocz,kon,liczba);
         writeln('                  OK');
       end;
 'Z' : begin
          if pocz=nil then
             write('***KOLEJKA PUSTA***')
          else
            begin
              Zdejmij(pocz,liczba);
              write('------> ');
              write('zdjeto: ',liczba);
            end;
       end;
 'W' : begin
         wypisz(pocz);
       end;
  else
    if znak <> 'K' then
     writeln ('Zly znak.');
  end;
 writeln;
 until (znak= 'K');
end.


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?