LinkedList 存储原理详解

LinkedList

1. LinkedList的数据结构是什么

双向链表: 每个节点上有两个指针(item/prve/next)
	链表中的每一个元素称之为节点,节点在运行时动态生成
		存储数据的数据域
		存储下一个节点地址的指针域

2. LinkedList的存取原理

存:
	尾部插入:
        1. 创建一个新节点,前驱结点指向原尾结点,后继节点指向null
        2. 更新新节点为尾结点(last)
        3. 判断头结点是否为null?
            把新节点作为头结点 : 把原尾结点的后继指节点执行新节点
   	指定位置插入:
   		1. 获取指定索引为的节点,并获取这个节点的前一个节点
   		2. 创建一个新的节点,前驱结点指向前一个节点,后继节点指向后一个节点
   		3. 把前一个节点的后继节点指向新节点,那个指定索引位的节点的前驱结点指向新节点
取:
	取指定索引元素:
		1. 根据索引判断从头部还是尾部来查找
		2. 遍历查查找

3. LinkedList的删除原理

1. 获取指定要删除的节点,这个节点的前一个节点和后一个节点
2. 判断上一个节点是否null:
	说明这个节点头结点,把下一个节点赋值为first节点 : 把上一个节点的后继节点指向下一个节点
	删除当前节点的前驱结点
3. 判断下一个节点是否null:
	说明这个节点尾结点,把上一个节点赋值为last节点 : 把下一个节点的前驱节点指向上一个节点
	删除当前节点的后继结点
4. 删除当前节点(方便GC回收)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值