Files
shiny/R/stack.R
2014-07-30 14:15:41 -05:00

29 lines
525 B
R

Stack <- setRefClass(
'Stack',
fields = list(
.stack = 'list'
),
methods = list(
push = function(obj) {
.stack <<- c(.stack, list(obj))
invisible(.self)
},
pop = function() {
len <- length(.stack)
if (len == 0)
return(NULL)
obj <- .stack[[len]]
.stack <<- .stack[-len]
obj
},
peek = function() {
len <- length(.stack)
if (len == 0) return(NULL)
.stack[[len]]
},
size = function() {
length(.stack)
}
)
)