Go 切片实现栈
Go 实现 切片
2023-09-11 14:14:56 时间
栈:先进后出
package main
import "fmt"
type stack struct {
data []int
}
// 入栈
func (s *stack) Push(n int) {
s.data = append(s.data, n)
}
// 出栈
func (s *stack) Pop() (int, bool) {
if len(s.data) == 0 {
return 0, false
}
n := s.data[len(s.data)-1]
s.data = s.data[:len(s.data)-1]
return n, true
}
func main() {
s := stack{}
// 入栈
s.Push(1)
s.Push(2)
s.Push(3)
// 出栈
for len(s.data) > 0 {
n, ok := s.Pop()
if ok {
fmt.Println(n)
}
}
}
相关文章
- 【Go源码】map实现
- 《Go语言实战》摘录:6.3 并发 - 竞争状态
- [Go] 反射 - reflect.ValueOf()
- PHP 与 Go 的语法区别
- go解析markdown转成html
- Go的pprof使用
- go如何进行交叉编译
- go的精选类库
- 【Go】go实现 — 选择排序
- 【Go】go实现 — 算法复杂度
- go结构体的方法和普通函数
- Go 使用互斥锁(sync.Mutex)实现线程安全的内存本地缓存(LocalCache)
- 【编程实践】用 go 语言实现线程安全的 hashmap
- gopkg:一种方便的go pakcage管理方式
- Go语言自学系列 | go常用命令
- Go语言自学系列 | golang并发编程之Mutex互斥锁实现同步
- go string 类型的值可以修改吗
- go排序 插入排序
- go 数组指针 指针数组
- go中gin框架+realize实现边写代码边编译,热更新,方便边改边看效果
- Go Web---Web服务器