Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 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
|
||||
10
Task/Stack/Tcl/stack-2.tcl
Normal file
10
Task/Stack/Tcl/stack-2.tcl
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
package require struct::stack
|
||||
struct::stack S
|
||||
S size ;# ==> 0
|
||||
S push a b c d e
|
||||
S size ;# ==> 5
|
||||
S peek ;# ==> e
|
||||
S pop ;# ==> e
|
||||
S peek ;# ==> d
|
||||
S pop 4 ;# ==> d c b a
|
||||
S size ;# ==> 0
|
||||
Loading…
Add table
Add a link
Reference in a new issue