我需要使用具有推送和弹出操作的 LIFO 堆栈容器,但container包没有。它应该由每个程序员临时编写,还是有一种方法可以使用其他数据结构作为堆栈(如 python 中的列表)?
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
Go 或标准库中没有内置堆栈类型。但是,您可以非常简单地将 Push 和 Pop 方法添加到切片中(与 Python 中列表上的现有方法不同)。
type Stack []YourType
func (s *Stack) Push(v YourType) {
*s = append(*s, v)
}
func (s *Stack) Pop() YourType {
ret := (*s)[len(*s)-1]
*s = (*s)[0:len(*s)-1]
return ret
}
很简单
- 2 回答
- 0 关注
- 149 浏览
添加回答
举报
0/150
提交
取消