线性表 -- 链式存储结构(单链表)

S1线性表的链式存储结构特点:
1)用任意一组地址任意的存储单元存放线性表中的数据元素。
2)节点:
数据域 (数据元素的信息)+ 指针域 (指示直接后继存储位置)= 节点 (表示数据元素或数据元素的映像)
3)链表:以“节点的序列”表示线性表称作链表。


S2头节点以及头指针
1)有时为了操作方便,在第一个节点之前虚加以个“头节点”,
以指向头节点的指针 为链表的头指针。


S3线性表的顺序存储结构与链式存储结构优缺点:
1)在分配空间上:数组分配在一块连续的数据空间上,因此在分配空间时必须确定大小;链表是一块
不连续的动态空间,通过指针来连接,因此长度可变。
2)顺序存储与链式存储优缺点:
数组优点:
1.可以利用偏移地址来访问元素,效率高,为O(1)。
2.可以使用折半方法查找元素,效率高。
数组缺点:
1.空间连续,存储效率低。
2.插入和删除元素效率比较低,而且比较麻烦。
链表优点:
1.插入和删除元素不需要移动其余元素,效率高,为O(1)。
2.不要求连续空间,空间利用率高。
链表缺点:
1.不提高随机访问元素的机制。
2.查找元素和搜索元素的效率低,最快情况为O(1),平均情况为O(N)。
总结:
因此对于经常插入和删除的操作,数据结构采用链表或者使用二叉搜索树。

S4线性表链表元素的插入与删除

注意:
删除一个节点的时候,要把被删除掉节点的内存进行释放,以免造成内存泄漏。
C语言释放内存函数是:free()


S5单链表部分代码






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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值