使用golang实现栈(stack)
Golang 实现 Stack 使用
2023-09-11 14:21:10 时间
package main
import (
"fmt"
"errors"
)
type Stack []int
// 入栈
func (s *Stack) push(a int) {
*s = append(*s, a)
}
// 出栈
func (s *Stack) pop() (int, error) {
if (len(*s) == 0) {
return 0, errors.New("Empty Stack")
}
a := *s
defer func() {
*s = a[:len(a) - 1]
}()
return a[len(a) - 1], nil
}
func main() {
// 数据初始化化
var s Stack = []int{12}
s.push(10)
fmt.Printf("入栈后的 Stack : %v\n", s)
a, err := s.pop()
fmt.Printf("出栈的数据:%v , 目前的 Stack : %v, Error: %v\n", a, s, err)
}
相关文章
- 算法基础:删除字符串中出现次数最少的字符(Golang实现)
- 算法基础:整数拆分问题(Golang实现)
- Golang 读文件
- Golang M 2023 6 topic
- Golang【Web 入门】 08 集成 Gorilla Mux
- Golang 【basic_leaming】指针
- Golang 【basic_leaming】流程控制
- Golang 反向代理 ReverseProxy 源码分析
- Golang 实现 Redis(8): TCC分布式事务
- Golang 实现 Redis(5): 使用跳表实现 SortedSet
- Golang 实现 Redis(3): 实现内存数据库
- GoLang 中用 MongoDB Watch 监听指定字段的变化
- 【GoLang】3.2 数组
- golang之zap探索
- golang(4):编写socket服务,简单支持命令
- golang(2):beego 环境搭建
- 使用golang学习算法(1)-排序
- JAVA开发者的Golang快速指南
- 【Golang开发】互联网大厂程序员一篇文章手把手带你在Mac上安装Golang开发环境并解决已知问题
- Golang 在 Mac、Linux、Windows 下如何交叉编译
- 编译时无法找到golang.org/x/net/html,出现了cannot find package "golang.org/x/crypto/ssh/terminal" in any of