在go语言的标准库里,有container/list库可以提供链表相关的功能。
(1)先看代码,链表常用的两个方法:PushBack和PushFront
package main
import (
"fmt"
"container/list"
)
func main() {
fmt.Println("Go Linked Lists Tutorial")
mylist := list.New()
mylist.PushBack(1)
mylist.PushFront(2)
}
这时候,链表里存的数据是: 2 ---> 1
(2)然后,我们从链表的头部Front开始,遍历输出链表。
package main
import (
"container/list"
"fmt"
)
func main() {
mylist := list.New()
mylist.PushBack(1)
mylist.PushFront(2)
for element := mylist.Front(); element != nil; element = element.Next() {
fmt.Println(element.Value)
}
}
输出结果为:
2
1
(3)删除链表中的一个元素Remove方法
package main
import (
"fmt"
"container/list"
)
func main() {
mylist := list.New()
mylist.PushBack(1)
mylist.PushFront(2)
for element := mylist.Front(); element != nil; element = element.Next() {
if element.Value != 1 {
mylist.Remove(element) //删除链表中值不为1的元素
}
}
for element := mylist.Front(); element != nil; element = element.Next() {
fmt.Println(element.Value) //遍历输出当前链表中的元素
}
}
这时候,链表里存的数据只有:1(2被remove掉了)
Done,以上讲了Linked List的基本使用方法。