简单实现,不带边界处理 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()) }