宜都网站制作,南京网络营销培训,上海建筑装饰集团有限公司,软件开发知识文章目录 链表链表基础知识部分链表的存储方式链表的定义链表的操作性能分析 链表
更多有关于go链表的内容可以见这篇文章链表的创建和读取
链表基础知识部分
什么是链表#xff0c;链表是一种通过指针串联在一起的线性结构#xff0c;每一个节点由两部分组成#xff0c;… 文章目录 链表链表基础知识部分链表的存储方式链表的定义链表的操作性能分析 链表
更多有关于go链表的内容可以见这篇文章链表的创建和读取
链表基础知识部分
什么是链表链表是一种通过指针串联在一起的线性结构每一个节点由两部分组成一个是数据域一个是指针域存放指向下一个节点的指针最后一个节点的指针域指向null空指针的意思。
链表的入口节点称为链表的头结点也就是head 链表类型 单链表 如上 双链表 每一个节点有两个指针域一个指向下一个节点一个指向上一个节点。 循环链表 链表首尾相连
链表的存储方式
数组是在内存中是连续分布的但是链表在内存中可不是连续分布的。
链表的定义
go语言单链表
type ListNode struct {Val int //数据域Next *ListNode//指针域
}链表的操作 节点删除 只需要将删除的节点后面的节点连接到前面的节点即可 由于go有自己的内存回收机制删除的节点不用再手动释放 添加节点 将要添加的节点指针域指向后面的节点前面的指针域替换为要添加节点的
性能分析
时间复杂度插入/删除查询适用场景数组O(n)O(1)数据量固定频繁查询较少增删链表O(1)O(n)数据量不固定频繁增删较少查询
数组在定义的时候长度就是固定的如果想改动数组的长度就需要重新定义一个新的数组。
链表的长度可以是不固定的并且可以动态增删 适合数据量不固定频繁增删较少查询的场景。
更多有关于go链表的内容可以见这篇文章链表的创建和读取