首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Go创建LinkedList

使用Go语言创建LinkedList可以通过定义一个结构体来表示链表节点,然后使用指针将节点连接起来。以下是一个示例代码:

代码语言:txt
复制
package main

import "fmt"

type Node struct {
    data interface{}
    next *Node
}

type LinkedList struct {
    head *Node
}

func (list *LinkedList) Add(data interface{}) {
    newNode := &Node{data: data, next: nil}

    if list.head == nil {
        list.head = newNode
    } else {
        current := list.head
        for current.next != nil {
            current = current.next
        }
        current.next = newNode
    }
}

func (list *LinkedList) Print() {
    current := list.head
    for current != nil {
        fmt.Println(current.data)
        current = current.next
    }
}

func main() {
    list := LinkedList{}
    list.Add(1)
    list.Add(2)
    list.Add(3)
    list.Print()
}

在上述代码中,我们定义了一个Node结构体来表示链表的节点,其中data字段用于存储节点的数据,next字段用于指向下一个节点。然后,我们定义了一个LinkedList结构体来表示整个链表,其中head字段指向链表的头节点。

通过Add方法,我们可以向链表中添加新的节点。如果链表为空,则将新节点设置为头节点;否则,遍历链表找到最后一个节点,并将其next字段指向新节点。

通过Print方法,我们可以打印链表中的所有节点的数据。

在main函数中,我们创建了一个LinkedList对象,并向其中添加了三个节点,然后调用Print方法打印链表中的数据。

这是一个简单的使用Go语言创建LinkedList的示例。在实际应用中,可以根据需要扩展链表的功能,例如删除节点、查找节点等操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • LinkedList源码解析

    在这一篇中我们主要介绍LinkedList集合类。它和ArrayList不同的是,LinkedList底层是通过双向链表的方式实现的。下面我们介绍一下双向链表的知识。在上一篇中我们知道ArrayList底层数组在处理业务有一个很大的性能问题,就是如果我们从数组的中间位置要删除一个元素要付出很大的代价,原因就是将元素删除之后,这个元素后面的元素都要向数组的前端移动,所以会造成性能的损失,同样,在数组的中间位置插入元素时,也会有上述等问题。于是Java的设计者们为了解决ArrayList的性能问题时,于是LinkedList诞生了。因为它底层是采用双向链表的方式实现的,所以不会出现上述等问题。下面我们详细了解一下链表这个数据结构。

    02
    领券