首页
学习
活动
专区
工具
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的示例。在实际应用中,可以根据需要扩展链表的功能,例如删除节点、查找节点等操作。

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

相关·内容

用js来实现那些数据结构07(链表01-链表的实现)

前面讲解了数组,栈和队列。其实大家回想一下。它们有很多相似的地方。甚至栈和队列这两种数据结构在js中的实现方式也都是基于数组。无论增删的方式、遵循的原则如何,它们都是有序集合的列表。在js中,我们新建一个数组并不需要限定他的大小也就是长度,但是实际上,数组的底层仍旧为初始化的数组设置了一个长度限制。我们想要在数组中任意的插入和删除元素的成本很高,虽然在js中我们有便捷的方法可以操作数组,但是其底层原理仍旧是这样的。只是我们对它并没有感觉,比如在java中,声明一个数组是必须要限制它的长度的。并且在扩容的

010
领券