func (s *Stack) Empty() bool {
	return 0 == s.size
}
Empty returns true if the stack is empty
package stack
type Element struct {
	Value interface{}
	next  *Element
}
func (e *Element) Next() *Element {
	return e.next
}
type Stack struct {
	top  *Element  
	size int       
}
func New() *Stack {
	return &Stack{nil, 0}
}
func (s *Stack) Push(x interface{}) {
	s.top = &Element{x, s.top}
	s.size++
}
func (s *Stack) Pop() interface{} {
	var x interface{}
	if nil != s.top {
		x, s.top = s.top.Value, s.top.next
		s.size--
	}
	return x
}
func (s *Stack) Peek() interface{} {
	if nil != s.top {
		return s.top.Value
	}
	return nil
}
func (s *Stack) Peek2() (interface{}, interface{}) {
	var x, y interface{}
	if nil != s.top {
		x = s.top.Value
		if nil != s.top.next {
			y = s.top.next.Value
		}
	}
	return x, y
}
func (s *Stack) Len() int {
	return s.size
}