package main
import (
"container/list"
"fmt"
)
func main() {
dataList := list.New()
dataList.PushBack(1) // 插入末尾
dataList.PushBack(2)
dataList.PushFront(3) // 插入表头
dataList.PushBack(4)
dataList.PushBack(5)
m := dataList.PushBack(6)
m1 := dataList.InsertBefore(7,m) // 6 之前插入 7
m2 := dataList.InsertAfter(8,m) // 6 之后插入 8
// 从链表头开始遍历
for e := dataList.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value) // 打印值
}
fmt.Println("----------------------------------------")
dataList.Remove(dataList.Front()) // 移除头部
dataList.MoveBefore(m2, m) // 将m2移动m之前
dataList.MoveAfter(m1, m)
dataList.Remove(m) // 移除
//PushBackList // 插入列表
//PushFrontList //
// 从链表头开始遍历
for e := dataList.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value) // 打印值
}
fmt.Println("----------------------------------------")
// 从链表尾开始遍历
for e := dataList.Back(); e != nil; e = e.Prev() {
fmt.Println(e.Value, " ")
}
fmt.Println("----------------------------------------")
dataList.Init() // 清空链表
// 从链表头开始遍历
for e := dataList.Front(); e != nil; e = e.Next() {
fmt.Println(e.Value) // 打印值
}
}
运行结果:
3
1
2
4
5
7
6
8
----------------------------------------
1
2
4
5
8
7
----------------------------------------
7
8
5
4
2
1
----------------------------------------
Process finished with exit code 0