简单实现,不带边界处理

package main  
  
import "fmt"  
  
//不带边界处理!  
//以int类型栈为例  
  
const maxn int = 10005  
  
type Stack struct {  
   arr []int  
   cnt int  
}  
  
func NewStack() *Stack {  
   return &Stack{  
      arr: make([]int, maxn),  
      cnt: 0,  
   }  
}  
func (s *Stack) Pop() int {  
   s.cnt--  
   return s.arr[s.cnt]  
}  
func (s *Stack) Empty() bool {  
   return s.cnt == 0  
}  
func (s *Stack) Top() int {  
   return s.arr[s.cnt-1]  
}  
func (s *Stack) Push(value int) {  
   s.arr[s.cnt] = value  
   s.cnt++  
}  
  
func main() {  
   stk := NewStack()  
   stk.Push(1)  
   fmt.Println(stk.Top())  
   stk.Pop()  
   fmt.Println(stk.Empty())  
}