home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / mac / exsource.old / 8_9.tcl < prev    next >
Text File  |  2003-04-15  |  388b  |  30 lines

  1. #
  2. # Example 8-9
  3. # Using an array to implement a stack.
  4. #
  5.  
  6. proc Push { stack value } {
  7.     upvar $stack S
  8.     if {![info exists S(top)]} {
  9.         set S(top) 0
  10.     }
  11.     set S($S(top)) $value
  12.     incr S(top)
  13. }
  14. proc Pop { stack } {
  15.     upvar $stack S
  16.     if {![info exists S(top)]} {
  17.         return {}
  18.     }
  19.     if {$S(top) == 0} {
  20.         return {}
  21.     } else {
  22.         incr S(top) -1
  23.         set x $S($S(top))
  24.         unset S($S(top))
  25.         return $x
  26.     }
  27. }
  28.  
  29.  
  30.