学习笔记,写到哪是哪。
Go语言中container/list包,list实际上是双向链表,和java一样,在插入和删除操作中会比较高效。
样例代码如下
package main
import (
"container/list"
"fmt"
)
func test_list1() {
var list1 = list.New()
list1.PushBack("a")
list1.PushBack(1)
list1.PushFront("b")
var list2 = list.New()
list2.PushFront("c")
list2.PushBackList(list1)
for i := list2.Front(); i != nil; i = i.Next() {
fmt.Println(i.Value)
}
for i := list2.Back(); i != nil; i = i.Prev() {
fmt.Println(i.Value)
}
fmt.Println(list2.Len())
}
func main() {
test_list1()
}
执行结果
c
b
a
1
1
a
b
c
4
注意
1、通过list.New()来初始化链表对象。
2、可以从前面插入元素(PushFront),也可以从后面插入元素(PushBack)。
3、可以通过使用元素内置的Next()、Pre() 方法来实现链表的遍历。可以从前往后也可以从后往前。



