小白的数据结构与算法学习笔记(六)----单链表链式存储结构的相关操作

首先,我们要知道由于链式存储是一种“乱放”式存储方式,所以单链表没有表长的定义,这也意味着相关操作不能用for循环,因为不知道循环次数,只能用while循环!!其次,由于不同于顺序存储,不是在一片地址连续内存存储数据,所以我们的操作必须要用到一个工具为我们找到下一个元素,没错,就是指针!!

基本操作还是四大类:取,读,插,删。取和读是一个玩意儿,就放一起说。不同于顺序存储,我们想在一片随意分布的数据中找到我们想要的元素,只有一种方法,那就是从第一个开始遍历,找到第二个,再找到第三个,再找到第四个,一直到我们要找的第i个,所以要先声明一个结点,让它指向链表第一个结点,再依次后移,找到取出即可,大家会发现,取和读的平均时间复杂度是O(n)。

下面分别讲一下插入与删除操作。

插入操作:

1、声明一个结点p指向链表第一个结点,依次后移找到目标位置(p=p->next)

2、若到末尾仍未找到,说明不存在,返回ERROR

3、找到后,生成空结点s,s的数据域存放插入的元素,指针域的指针指向p->next(s->next=p->next)

4、让p指向s,p->next=s,返回OK

删除操作:

1、声明一个结点p指向链表第一个结点,依次后移找到目标位置(p=p->next)

2、若到末尾仍未找到,说明不存在ÿ

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值