blob: b28fedb962c605095eb5f9d32e9be581952f8c4f [file] [log] [blame]
package stack
// Stack is a stack interface for integers.
type Stack struct {
Push func(int)
Pop func() int
Length func() int
}
// NewStack returns a new stack of integers.
func NewStack() Stack {
slice := make([]int, 0)
return Stack{
Push: func(i int) {
slice = append(slice, i)
},
Pop: func() int {
res := slice[len(slice)-1]
slice = slice[:len(slice)-1]
return res
},
Length: func() int {
return len(slice)
},
}
}