diff options
Diffstat (limited to 'vendor/github.com/sergi/go-diff/diffmatchpatch/stack.go')
-rw-r--r-- | vendor/github.com/sergi/go-diff/diffmatchpatch/stack.go | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/stack.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/stack.go deleted file mode 100644 index d28ae459..00000000 --- a/vendor/github.com/sergi/go-diff/diffmatchpatch/stack.go +++ /dev/null @@ -1,66 +0,0 @@ -package diffmatchpatch - -import ( - "fmt" -) - -type Stack struct { - top *Element - size int -} - -type Element struct { - value interface{} - next *Element -} - -// Len returns the stack's length -func (s *Stack) Len() int { - return s.size -} - -// Push appends a new element onto the stack -func (s *Stack) Push(value interface{}) { - s.top = &Element{value, s.top} - s.size++ -} - -// Pop removes the top element from the stack and return its value -// If the stack is empty, return nil -func (s *Stack) Pop() (value interface{}) { - if s.size > 0 { - value, s.top = s.top.value, s.top.next - s.size-- - return - } - return nil -} - -// Peek returns the value of the element on the top of the stack -// but don't remove it. If the stack is empty, return nil -func (s *Stack) Peek() (value interface{}) { - if s.size > 0 { - value = s.top.value - return - } - return -1 -} - -// Clear empties the stack -func (s *Stack) Clear() { - s.top = nil - s.size = 0 -} - -func main() { - stack := new(Stack) - - stack.Push("Things") - stack.Push("and") - stack.Push("Stuff") - - for stack.Len() > 0 { - fmt.Printf("%s ", stack.Pop().(string)) - } - fmt.Println() -} |