From cc736093e7e4521ad392b13f74cf3da51308bf18 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 9 Jan 2015 02:04:19 +0100 Subject: Initial import --- stack.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 stack.go (limited to 'stack.go') diff --git a/stack.go b/stack.go new file mode 100644 index 0000000..d8b5b6c --- /dev/null +++ b/stack.go @@ -0,0 +1,19 @@ +package stack + +type Stack []interface{} + +func NewStack() Stack { + return Stack{} +} + +func (s *Stack) Push(v interface{}) { + *s = append(*s, v) +} + +func (s *Stack) Pop() (v interface{}, ok bool) { + size := len(*s) - 1 + if ok = size >= 0; ok { + v, *s = (*s)[size], (*s)[:size] + } + return v, ok +} -- cgit v1.2.3