linkedlist笔记(一)

linkedlist

数组

优势:高效,每个元素访问时间是常数,这一特性叫随机访问

缺点:要申明初始化大小,很难去在任意位置插入或删除

linkedlist

定义:一种储存数据的形式

优点:过不同的节点储存一串数据,每个节点包含一个数据,同时包含指向下一个数据的链接,最后一个元素的链接为“NULL”。linkedlist可以无限延长,不需要提前声明大小,同时插入和取出元素很容易,只需要改变指向的链接就好。插入元素的复杂度为O(n)

缺点:1.不能随机访问2.储存要占据额外的储存空间,要额外储存指向节点的链接。

二者比较

内存
  1. array在内存空间占据连续的位置
  2. linkedlist不需要连续的位置。

linkedlist basic operation

$$

1.q ← \leftarrow p这表示将节点p指向p
2.q ← \leftarrow next of p 这个表示q 指向q的前一个结点
3.p ← \leftarrow p\ 将 p指向p的下一个节点
4.next of q ← \leftarrow p q的下一个指向p
5. next of q ← \leftarrow next of p 将p的下一个设置为q的下一个
$$

image-20200926175253336

递归(打印链表A的值)

traverse(A){
在这里插入图片描述

if(A=NULL)

return

else

print A.value

traverwe(A.next)

}

在链表中插入值

algorithm insertNode()

在这里插入图片描述

链表中删去值

在这里插入图片描述

search value

时间复杂度为O(N),空间复杂度为O(1).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值