go语言实现无头单向链表

什么是无头单向链表

无头单向链表是一种线性数据结构,它的每个元素都是一个节点,每个节点都有一个指向下一个节点的指针。"无头"意味着这个链表没有一个特殊的头节点,链表的第一个节点就是链表的头。

优点:

  • 动态大小:链表的大小是动态的,可以在运行时添加或删除节点,这使得它在处理不确定数量的数据时非常有用。

  • 插入和删除效率高:在链表中插入或删除一个节点只需要改变一些指针,而不需要移动节点。如果你有一个指向要插入或删除位置的指针,这个操作可以在常数时间内完成。

  • 可以用于实现许多高级数据结构:链表可以用于实现许多其他高级数据结构,如堆栈、队列、图等。

缺点:

  • 访问效率低:访问链表中的元素需要从头节点开始遍历,这在链表很长时可能会很慢。链表不支持随机访问,每次查找都需要从头开始。

  • 额外的存储空间:链表的每个节点都需要额外的存储空间来存储指向下一个节点的指针,这在存储空间有限的情况下可能是一个问题。

  • 复杂性:链表的操作比数组复杂,特别是在插入和删除节点时,需要处理一些边界条件,如空链表、只有一个节点的链表等。
    在这里插入图片描述

代码


// 无头单向链表
type LinkNode struct {
	Val  int
	Next *LinkNode
}

type LinkedList struct {
	Head *LinkNode
}

func NewLinkedList() *LinkedList {
	return &LinkedList{
		Head: nil,
	}
}

func (l *LinkedList) Add(val int) {
	newNode := &LinkNode{Val: val}
	if l.Head == nil {
		l.Head = newNode

	} else {
		cur := l.Head
		for cur.Next != nil {
			cur = cur.Next
		}
		cur.Next = newNode
	}
}

func (l *LinkedList) Get() {
	cur := l.Head
	for cur != nil {
		println(cur.Val)
		cur = cur.Next
	}
}

func main() {
	linkedList := NewLinkedList()
	linkedList.Add(1)
	linkedList.Add(2)
	linkedList.Add(3)
	linkedList.Get()
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-08 09:26:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-08 09:26:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-08 09:26:02       82 阅读
  4. Python语言-面向对象

    2024-04-08 09:26:02       91 阅读

热门阅读

  1. MFC中数据转化

    2024-04-08 09:26:02       29 阅读
  2. 文心一言 vs GPT-4 —— 全面横向比较

    2024-04-08 09:26:02       31 阅读
  3. Unity3D知识点精华浓缩

    2024-04-08 09:26:02       26 阅读
  4. Stable Diffusion 本地部署教程

    2024-04-08 09:26:02       36 阅读
  5. Python内置函数any()和ascii()详解

    2024-04-08 09:26:02       34 阅读
  6. 代码随想录算法训练营第四十天|leetcode139题

    2024-04-08 09:26:02       32 阅读
  7. 携程API接口与旅游大数据的结合

    2024-04-08 09:26:02       34 阅读
  8. Github 2024-04-07php开源项目日报 Top10

    2024-04-08 09:26:02       38 阅读
  9. 1.网络编程-网络协议

    2024-04-08 09:26:02       38 阅读
  10. 数据结构之栈(LIFO)

    2024-04-08 09:26:02       34 阅读