链表初步知识

总结一下最近所学的链表知识(蹲在楼道,手冷到打字僵硬🥶给我暖气啊!)

链表,形象记忆,即一段一段的小链节,勾起来变成一串长链子。相比于可以看成一整串数组,链子就可以拆卸,或者多加几节。这也就是链表的方便之处了——方便增删。

最简单的单链表,每一个小链节,都分为数据val部分,和指针*next部分。val存储所需要的数据,next指针指向下一个链节,以此把小链节连起来。这样,构成一串链表。

由此也不难看出,这些小的节点,可以在内存里“见缝插针”,随意找地方存储,反正有next指针在,用的时候能找着下一节点。而数组就像俄罗斯方块里的一大长条,还得找到足够大的、合适的位置才能放下它,这就是链表之于数组的又一大优点了——存储空间小。

现在详解节点。

第一个叫首元结点(也有叫头结点的,其实不太合适),定义一个头指针head指向首元结点。有时为了方便操作(为把首元结点也能当成普通节点处理),定义一个为空的头结点,其指针指向首元结点。最后一个结点的指针指向空。

对链表的操作。

基础的无非增删改查。找到要修改的位置,增:断开链子,该结点指针指向新增结点,新增结点指向后面结点;

删:要删的结点前一个结点的指针跳过它指向下一个(C++里别忘了释放要删的这个结点)

改:找到结点,修改值

查:这里又是上述三个操作的基础了。链表不能通过下标访问,只能从头开始往后遍历。通过cur->next=cur->next->next,指针后移实现。

联系题目:乐扣203

701da4acc64048aeae8ea3b6a1ebbe46.jpg

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值