home *** CD-ROM | disk | FTP | other *** search
- PROGRAM MyStack ;
-
- USES
- CRT ,
- StackOBJ ,
- BaseTypes ,
- Elements ;
-
-
- VAR
- s : PStackOBJ ;
- d : PElementOBJ ;
-
-
-
- BEGIN { ******* MAIN ******* }
-
- WriteLn ;
-
- WriteLn ( 'Memory before operation : ' , MemAvail : 5 ) ;
-
- s := New ( PStackObj , Init ) ;
-
- s^.Push ( New ( PStrOBJ , Init ( 'One!' ) ) ) ;
- s^.Push ( New ( PRealOBJ , Init ( 1.5 ) ) ) ;
- s^.Push ( New ( PStrOBJ , Init ( 'Two!' ) ) ) ;
- s^.Push ( New ( PRealOBJ , Init ( 2.5 ) ) ) ;
-
- WriteLn ( 'Memory with four items : ' , MemAvail : 5 ) ;
-
- s^.Push ( New ( PIntOBJ , Init ( 3 ) ) ) ;
- s^.Push ( New ( PRealOBJ , Init ( 3.5 ) ) ) ;
- s^.Push ( New ( PIntOBJ , Init ( 4 ) ) ) ;
-
- WriteLn ( 'Memory with three more items : ' , MemAvail : 5 ) ;
-
-
- WHILE ( NOT ( s^.Empty ) )
- DO
- BEGIN
-
- d := PElementOBJ ( s^.Pop ) ;
-
- d^.Display ;
-
- Write ( ' ' ) ;
-
- Dispose ( d , Done ) ;
-
- END ; { WHILE }
-
- WriteLn ;
-
- WriteLn ( 'Memory after disposing of all elements : ' , MemAvail : 5 ) ;
-
- Dispose ( s , Done ) ;
-
- WriteLn ( 'Memory after disposing of the stack : ' , MemAvail : 5 ) ;
-
- END .