内容:golang中使用container包来实现栈和队列

场景:

golang并没有像C++那样直接有很完善的STL容器可以使用,虽然golang提供了container包,
但是里面的容器其实种类并不齐全,像栈和队列就没有,但是我们可以借助list来实现这两者
package main

import (
	"container/list"
	"fmt"
)

func main() {

	// 生成队列
	l := list.New()

	// 入队
	l.PushBack(1)
	l.PushBack(2)
	// 出队
	i1 := l.Front()
	l.Remove(i1)
	fmt.Printf("%d\n", i1.Value)
	i2 := l.Front()
	l.Remove(i2)
	fmt.Printf("%d\n", i2.Value)

	//入栈
	l.PushBack(1)
	l.PushBack(2)
	// 出栈
	i3 := l.Back()
	l.Remove(i3)
	fmt.Printf("%d\n", i3.Value)
	i4 := l.Back()
	l.Remove(i4)
	fmt.Printf("%d\n", i1.Value)
}

运行:
[22:49:47] user:src $ go run main.go
1
2
2
1
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐