diff options
Diffstat (limited to 'pkg/stack/stack.go')
-rw-r--r-- | pkg/stack/stack.go | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/pkg/stack/stack.go b/pkg/stack/stack.go deleted file mode 100644 index 4dbb72c..0000000 --- a/pkg/stack/stack.go +++ /dev/null @@ -1,51 +0,0 @@ -package stack - -type Stack struct { - size int - height int - data []int - next *Stack // Pointer to the next element in the stack stack -} - -func NewStack() *Stack { - return &Stack{ - size: 32, - height: 0, - data: make([]int, 32), - next: nil, - } -} - -func (s *Stack) Clear() { - s.height = 0 -} - -func (s *Stack) Duplicate() { - if s.height > 0 { - s.Push(s.data[s.height-1]) - } -} - -func (s *Stack) Pop() int { - if s.height > 0 { - s.height-- - return s.data[s.height] - } - return 0 -} - -func (s *Stack) Push(value int) { - if s.height >= s.size { - s.size += 32 - s.data = append(s.data, make([]int, 32)...) - } - s.data[s.height] = value - s.height++ -} - -func (s *Stack) Swap() { - a := s.Pop() - b := s.Pop() - s.Push(a) - s.Push(b) -} |