all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
31
Task/Stack/Tcl/stack-1.tcl
Normal file
31
Task/Stack/Tcl/stack-1.tcl
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
proc push {stackvar value} {
|
||||
upvar 1 $stackvar stack
|
||||
lappend stack $value
|
||||
}
|
||||
proc pop {stackvar} {
|
||||
upvar 1 $stackvar stack
|
||||
set value [lindex $stack end]
|
||||
set stack [lrange $stack 0 end-1]
|
||||
return $value
|
||||
}
|
||||
proc size {stackvar} {
|
||||
upvar 1 $stackvar stack
|
||||
llength $stack
|
||||
}
|
||||
proc empty {stackvar} {
|
||||
upvar 1 $stackvar stack
|
||||
expr {[size stack] == 0}
|
||||
}
|
||||
proc peek {stackvar} {
|
||||
upvar 1 $stackvar stack
|
||||
lindex $stack end
|
||||
}
|
||||
|
||||
set S [list]
|
||||
empty S ;# ==> 1 (true)
|
||||
push S foo
|
||||
empty S ;# ==> 0 (false)
|
||||
push S bar
|
||||
peek S ;# ==> bar
|
||||
pop S ;# ==> bar
|
||||
peek S ;# ==> foo
|
||||
Loading…
Add table
Add a link
Reference in a new issue