Go语言列表list遍历

Go语言列表list遍历教程

Golang列表 的遍历分为正序遍历和倒叙遍历,正序遍历就是从链表的头元素遍历到尾元素,倒叙遍历就是从链表的尾元素遍历到链表的头元素。

Go语言列表list遍历

Go 语言链表的正序遍历是使用 for 循环 加上 list 内置的 Front 函数和 Next 函数来实现。列表的 Front 函数返回的是列表的头元素,Next 是实现列表的指针后移,for 循环的结束条件是列表的节点为 nil。

Go 语言链表的倒序遍历是使用 for 循环加上 list 内置的 Back 函数和 Prev 函数来实现。列表的 Back 函数返回的是列表的尾元素,Prev 是实现列表的指针前移,for 循环的结束条件是列表的节点为 nil。

列表正序遍历

语法

for i := lis.Front(); i != nil; i = lis.Next() { fmt.Println(i.Value) }

说明

从链表头遍历到链表尾,并打印列表中每个元素的值,链表的 Value 是节点元素对应的值。

列表倒叙遍历

语法

for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Println(i.Value) }

说明

从链表尾遍历到链表头,并打印列表中每个元素的值。

案例

列表正序遍历

正序遍历列表,并打印列表的每一个元素

package main import ( "container/list" "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //正序遍历列表,并打印列表的每一个元素 listHaiCoder := list.New() listHaiCoder.PushFront("Hello") listHaiCoder.PushFront("HaiCoder") listHaiCoder.PushFront("嗨客网") for i := listHaiCoder.Front(); i != nil; i = i.Next() { fmt.Println("Element =", i.Value) } }

程序运行后,控制台输出如下:

104 golang列表list遍历.png

我们通过 list.New 创建了一个列表 listHaiCoder,接着使用 PushFront 函数在列表中插入三个元素。

在遍历列表时,首先使用 Front() 函数获取列表的头元素,接着每次循环使用 Next() 函数将指针后移一位,for 循环结束的条件是链表的节点为 nil。

列表倒叙遍历

倒叙遍历列表,并打印列表的每一个元素

package main import ( "container/list" "fmt" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") //倒叙遍历列表,并打印列表的每一个元素 listHaiCoder := list.New() listHaiCoder.PushFront("Hello") listHaiCoder.PushFront("HaiCoder") listHaiCoder.PushFront("嗨客网") for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Println("Element =", i.Value) } }

程序运行后,控制台输出如下:

105 golang列表list遍历.png

我们通过 list.New 创建了一个列表 listHaiCoder,接着使用 PushFront 函数在列表中插入三个元素。

在遍历列表时,首先使用 Back() 函数获取列表的尾元素,接着每次循环使用 Prev() 函数将指针前移一位,for循环结束的条件是链表的节点为 nil。

Go语言列表list遍历总结

Golang 的列表的遍历分为正序遍历和倒叙遍历,正序遍历就是从链表的头元素遍历到尾元素,倒叙遍历就是从链表的尾元素遍历到链表的头元素。Go 语言列表正序遍历语法:

for i := lis.Front(); i != nil; i = lis.Next() { fmt.Println(i.Value) }

Go 语言列表倒叙遍历语法:

for i := listHaiCoder.Back(); i != nil; i = i.Prev() { fmt.Println(i.Value) }