数据结构(王道)——线性表的存储结构之链表存储

线性表的链表存储:

 

一、单链表定义:

 

用代码定义一个单链表:

 

不带头结点的单链表定义: 

带头结点的单链表定义:

 

 

单链表定义总结:

 

二、单链表的基本操作(插入+删除+查找)

 

 

1、插入

如何在 带头结点 的链表中按位序插入

 
代码实现:

 

如何在 不带头结点 的链表中按位序插入

代码实现:

 

指定结点后插操作

带头结点的指定节点后插操作

 

 

指定结点前插操作

通过头指针便利链表可以找到所有结点的地址

 时间复杂度更简单的 指定结点前插操作:

思路:在指定结点后插入元素,然后调换两个结点的数据内容。

2、删除

按位序删除(带头结点)思路

 

 代码实现:

 时间复杂度更简单的 指定结点删除方式:

这种情况删结点,如果结点是最后一个的话第五行代码会执行出错。并且想要删除最后一个结点只能用第一种方式。

 单链表的局限性:无法逆向检索,使用的时候有时候不方便。

 

3、查找

 按位查找:

 

 

按值查找:

 

 求表长:

总结:

 

三、单链表的建立

 尾插法:

 优化尾插法:

优化每次进入插入函数都需要找表尾的函数循环。用一个表尾指针代替。

 

 

头插法:

每次都从头结点进行尾插操作

 常应用于链表的逆置。

 

总结:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值