golang利用切片实现栈操作,附例子
Golang 实现 操作 利用 例子 切片
2023-09-11 14:17:08 时间
记录golang利用切片实现栈操作,附例子如下
//init stack as string type slice,send data of string with space splite
//return a stack with data
func InitWithStringSpliteSpace(stack []string, s string) []string {
for _, v := range strings.Split(s, " ") {
stack = append(stack, v)
}
return stack
}
//push a data on top of stack
//return a stack with data
func PushTop(stack []string, top string) []string {
return append(stack, top)
}
//get top data from a stack
//return top data
func GetTop(stack []string) string {
return stack[len(stack)-1]
}
//get top data from a stack and remove it,pop out stack
//return top data and stack
func GetAndRemoveTop(stack []string) (string, []string) {
return stack[len(stack)-1], stack[:len(stack)-1]
}
//remove top data form a stack
//return stack
func RemoveTop(stack []string) []string {
return stack[:len(stack)-1]
}
//remove index of data form a stack,the index is sort of stack
//return stack
func RemoveIndex(stack []string, i int) []string {
copy(stack[i:], stack[i+1:])
return stack[:len(stack)-1]
}
func main() {
var stack []string
s := "Hello Go Demo Project"
t := "Top"
stack = InitWithStringSpliteSpace(stack, s)
fmt.Println("InitWithStringSpliteSpace stack = ", stack)
stack = PushTop(stack, t)
fmt.Println("PushTop stack = ", stack)
fmt.Println("GetTop top = ", GetTop(stack))
t, stack = GetAndRemoveTop(stack)
fmt.Printf("GetAndRemoveTop stack = %s,top = %s\n", stack, t)
stack = RemoveTop(stack)
fmt.Println("RemoveTop stack = ", stack)
fmt.Println("RemoveIndex stack = ", RemoveIndex(stack, 2))
}
相关文章
- Golang 实现curl
- Golang 处理 Json(一):编码
- golang 遇坑总结
- 一个简单的Golang实现的HTTP Proxy
- 没有构造函数的golang如何实现构造函数功能
- electron/nodejs实现调用golang函数
- Golang每日一练(leetDay0014)
- Golang 034. 分糖果问题
- golang冒泡排序代码实现
- golang类型断言及检测其是否断言成功
- Golang中支持可变参数
- golang安装beego报错:go: cannot use path@version syntax in GOPATH mode
- [Go] golang 时间格式化 12小时制 与 24小时制
- 【人工智能 Open AI】设计一个SQL Where DSL模型,使用 golang 代码来实现DSL的翻译成SQL。
- 【编程实践】使用golang 解析json字符串代码 / 使用 golang 实现一个HashSet / 使用C语言实现KMP算法,并加上非常详尽的注释。
- 【数据结构与算法】使用 golang 实现 lsm tree 算法代码
- 【架构实践】一致性Hash算法原理图文详解 & 使用 golang 实现
- Go语言自学系列 | golang通过接口实现OCP设计原则
- Go语言自学系列 | golang格式化输出
- golang goroutine实现_golang中的Mutex设计原理详解(一)
- golang里channel的实现原理
- [Golang] kafka集群搭建和golang版生产者和消费者
- golang实现图片水印效果
- golang服务开发平滑升级之优雅重启
- golang用通道实现信号量,控制并发个数