github.com/code-reading/golang@v0.0.0-20220303082512-ba5bc0e589a3/coding/container/02-list.go (about) 1 package main 2 3 import ( 4 "container/list" 5 "fmt" 6 ) 7 8 func main() { 9 var l = list.New() // 初始化一个链表 10 e0 := l.PushBack(10) // 10 11 e1 := l.PushFront(11) // 11 10 12 e2 := l.PushBack(7) // 11 10 7 13 14 l.InsertBefore(3, e0) // 11 3 10 7 15 l.InsertAfter(196, e1) // 11 196 3 10 7 16 l.InsertAfter(129, e2) // 11 196 3 10 7 129 17 l.MoveToBack(e1) // 196 3 10 7 129 11 18 l.MoveToFront(e2) // 7 196 3 10 129 11 19 20 // 从链表前出元素, 停止条件是 元素e 不为空, 迭代时 e = e.Next() 21 for e := l.Front(); e != nil; e = e.Next() { 22 fmt.Printf("%v ", e.Value) 23 } 24 } 25 26 // output 7 196 3 10 129 11