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