Golang container.list 包详解
container/list
包提供了一个双向链表的实现。这个包中的 List
类型可以用来存储一个个的元素,并且可以高效地在此列表中进行元素的插入和删除操作。
以下是使用 container/list
包的一些基本操作的示例代码:
package main
import (
"container/list"
"fmt"
)
func main() {
// 创建一个空的链表
l := list.New()
// 将元素从前面插入链表
l.PushFront("a")
l.PushFront("b")
// 将元素从后面插入链表
l.PushBack("c")
l.PushBack("d")
// 遍历链表
for e := l.Front(); e != nil; e = e.Next() {
fmt.Print(e.Value, " ")
}
fmt.Println()
// 移除链表的第一个元素
fmt.Println("Remove Front:", l.Remove(l.Front()))
// 再次遍历链表
for e := l.Front(); e != nil; e = e.Next() {
fmt.Print(e.Value, " ")
}
fmt.Println()
// 移除链表的最后一个元素
fmt.Println("Remove Back:", l.Remove(l.Back()))
// 再次遍历链表
for e := l.Front(); e != nil; e = e.Next() {
fmt.Print(e.Value, " ")
}
}
输出将会是:
b a c d
Remove Front: b
a c d
Remove Back: c
a d
这段代码展示了如何创建一个链表,如何向链表中添加和删除元素,以及如何遍历链表。PushFront
方法在链表前端插入元素,PushBack
方法在链表后端插入元素。Remove
方法用于删除链表中的元素,Front
和 Back
方法分别返回链表的第一个和最后一个元素。
评论已关闭