链表 (LL) 是像数组一样基本且线性的数据结构之一。它包含一堆节点,每个节点包含数据和一个指向下一个节点的指针。 链表中的所有元素都通过 指针 连接。

在这个 Go 程序中,Head 是链表的起始节点,它指向下一个节点。它将继续生成链表节点,因为前一个节点将存储下一个节点的地址。最后,最后一个节点的指针指向 NULL 值。
让我们通过一个例子来看看,考虑 4 个数字 100、20、40、70,我们将它们构成链表的节点。

一个 struct 数据类型可以用来创建一个链表节点,它将包含一个整数值和一个指向下一个节点的指针。接下来,我们需要一个函数来生成一个新节点,为其变量赋值,并将该节点附加到链表。另一个函数用于从头到尾遍历并借助循环打印值。
Go 中的库函数将帮助我们实现此程序,为此我们需要在程序开始时导入 fmt 包。在 main 函数中,我们可以调用我们用户定义的函数来创建节点和遍历链表。
步骤 1:开始
步骤 2:定义节点的结构
步骤 3:通过调用函数 NewNode(value) 将 head 指定为起始节点
步骤 4:通过调用函数 NewNode(value) 创建链表,使前一个节点存储下一个节点的地址。
步骤 5:调用函数 TraverseLinkedList(head)
步骤 6:退出
步骤 1:声明变量 n 为 Node 类型。
步骤 2:通过将数据分配给节点值并将节点的指针更改为 nil 来创建节点 n。
步骤 3:返回节点 n
步骤 1:通过遍历从 head 开始直到找到引用值为 NULL 的列表,显示链表中的所有节点。
链表实现程序使用以下 GO 编程主题,请参考这些主题以获得更好的理解。
package main
import "fmt"
type Node struct {
value int
next *Node
}
func NewNode(value int) *Node{
var n Node
n.value = value
n.next = nil
return &n
}
func TraverseLinkedList(head *Node){
fmt.Printf("Linked List: ")
temp := head
for temp != nil {
fmt.Printf("%d -> ", temp.value)
temp = temp.next
}
fmt.Printf("NULL")
}
func main(){
head := NewNode(100)
head.next = NewNode(20)
head.next.next = NewNode(40)
head.next.next.next = NewNode(70)
TraverseLinkedList(head)
}
Linked List: 100 -> 20 -> 40 -> 70 -> NULL