1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package main
- // Stack ...
- type Stack []int
- func (s Stack) Len() int { return len(s) }
- func (s Stack) Less(i, j int) bool { return s[i] < s[j] }
- func (s Stack) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
- // Top ...
- func (s Stack) Top() int {
- return s[len(s)-1]
- }
- // Empty ...
- func (s Stack) Empty() bool {
- return len(s) == 0
- }
- // Push ...
- func (s *Stack) Push(val interface{}) {
- *s = append(*s, val.(int))
- }
- // Pop ...
- func (s *Stack) Pop() interface{} {
- top := s.Top()
- *s = (*s)[:len(*s)-1]
- return top
- }
- // Stack64 ...
- type Stack64 []int64
- func (s Stack64) Len() int { return len(s) }
- func (s Stack64) Less(i, j int) bool { return s[i] < s[j] }
- func (s Stack64) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
- // Top ...
- func (s Stack64) Top() int64 {
- return s[len(s)-1]
- }
- // Empty ...
- func (s Stack64) Empty() bool {
- return len(s) == 0
- }
- // Push ...
- func (s *Stack64) Push(val interface{}) {
- *s = append(*s, val.(int64))
- }
- // Pop ...
- func (s *Stack64) Pop() interface{} {
- top := s.Top()
- *s = (*s)[:len(*s)-1]
- return top
- }
|