数据结构——链表

链表是一种随机存储在内存中的节点的对象集。节点包括两个字段,即存储在该地址的数据和包含下一节点地址的指针。链表的最后一个节点包含指向null的指针。
在这里插入图片描述
1.链表的用途

  • 链表不需要连续存在于存储器中。节点可以是存储器中任何位置并链接在一起以形成链表。实现了对空间的优化利用。
  • 链表大小仅限于内存大小,不需要提前声明。
  • 空节点不能出现在链表中。
  • 在单链表中存储基元类型或对象的值。

2.为什么链表比数组有优势?
数组的限制:

  • 在程序中使用数组之前,必须事先知道数组的大小。
  • 增加数组的大小是一个耗时的过程。在运行时几乎不可能扩展数组大小。
  • 数组中所有元素都需要连续存储在内存中。在数组中插入任何元素都要移动元素之前所有的数据。

链表可以克服数组所有的限制。

  • 动态分配内存。链表的所有节点但是非连续存储在存储器中,并使用指针链接在一起。
  • 大小调整不再是问题,因为不需要在声明定义时定义大小。链表根据程序需求增长,并且仅限于可用的内存空间。

3.单链表或单向链
链表是有序元素集的集合。元素的数量可以根据程序的需要而变化。单链表中的节点由两个部分组成:数据部分和链接部分。节点的数据部分存储将由节点表示的实际信息,而节点的链接部分存储其直接后继的地址。
单向链表可以仅在一个方向上遍历。

时间复杂度
在这里插入图片描述

4.单链表上的操作

  1. 创建节点
  2. 插入节点(表头,表中,表尾)
  3. 删除节点(表头,表中,表尾)
  4. 遍历节点
  5. 搜索
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值