Files
2020-08-06 23:29:19 +08:00

34 lines
584 B
Go

package structures
// Stack 是用于存放 int 的 栈
type Stack struct {
nums []int
}
// NewStack 返回 *kit.Stack
func NewStack() *Stack {
return &Stack{nums: []int{}}
}
// Push 把 n 放入 栈
func (s *Stack) Push(n int) {
s.nums = append(s.nums, n)
}
// Pop 从 s 中取出最后放入 栈 的值
func (s *Stack) Pop() int {
res := s.nums[len(s.nums)-1]
s.nums = s.nums[:len(s.nums)-1]
return res
}
// Len 返回 s 的长度
func (s *Stack) Len() int {
return len(s.nums)
}
// IsEmpty 反馈 s 是否为空
func (s *Stack) IsEmpty() bool {
return s.Len() == 0
}