[Back to TURTLE SWAG index]  [Back to Main SWAG index]  [Original]

(* ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
   ³ Programated by Vladimir Zahoransky                        ³
   ³                Vladko software                            ³
   ³ Contact      : zahoran@cezap.ii.fmph.uniba.sk             ³
   ³ Program tema : Unit - define dynamical Ostack             ³
   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ *)

{ This program just modify Ostack.pas. This program work absolutly
  universal. This program can work with general item. Principe is
  DDS (dynamical data structure) and work with poiters. Last 'record'
  prvok is at the present Component, which define general item. It
  is easy to undestand.

}


Unit DynStack;

Interface

Const maxstack=100;

Type Component=Record p:pointer;
                      dl:word;
                      End;

     Stack=Object
             st: Array[1..maxstack] of Component;
             vrch: 0..maxstack;
             Procedure init;
             Function  full:boolean;
             Function  empty:boolean;
             Procedure push(Var v;d:word);
             Procedure pop(Var v);
           End;

Implementation

Procedure Error(s:string);      {Chyba = error}
Begin
writeln(s);
halt;
End;

Procedure Stack.init;
Begin
vrch:=0;
End;

Function Stack.full:boolean;
Begin
full:=vrch=maxstack
End;

Function Stack.empty:boolean;
Begin
Empty:=vrch=0
End;

Procedure Stack.push(Var v;d:word);
Begin
  if full Then Error('Full stack!')
  Else
    Begin
      inc(vrch);
      With st[vrch] do Begin
                       Dl:=d;
                       Getmem(p,dl);
                       Move(v,p^,dl);
                       End;
    End
End;

Procedure Stack.pop(Var v);
Begin
  if empty Then Error('Empty stack')
  Else
    Begin
      With St[vrch] do Begin
                       Move(p^,v,dl);
                       Freemem(p,dl);
                       End;
           Dec(vrch);

    End
End;

End.

[Back to TURTLE SWAG index]  [Back to Main SWAG index]  [Original]