| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | package main// Stack ...type Stack []intfunc (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 []int64func (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}
 |