数据结构笔记(2)线性表

#这篇文章只作为个人的读书笔记,内容均来自书本,请勿转载

关键:1、线性表是一个序列

2、线性表是有限的


线性表抽象数据类型:




线性表的顺序储存结构:用一段地址连续的储存单元依次存储线性表的数据元素

描述顺序储存结构:1、储存空间的起始位置、

2、线性表的最大储存容量

3、线性表的长度

几种操作的具体实现:

插入操作:1、如果插入的位置不合理,抛出异常

2、如果线性表的长度大于等于数组长度,抛出异常或动态增加容量

3、从最后一个元素向前遍历i个位置,分别将他们向后移动一个位置

4、插入

5、表长加一

删除操作:1、位置不合理抛出异常

2、取出删除元素

3、从删除位置向后遍历,都向前移动一个位置

4、表长减一

*时间复杂度:最好情况1,既O(1)最坏情况n,既O(n)

根据概率原理,平均次数为(n-1)/2,既O(n)


线性表的优缺点:



线性表的链式存储结构:



头指针和头结点:



线性表链式储存结构代码描述:



几种操作的具体实现:

单链表的读取:

1、声明一个节点p指向链表的第一个节点 ,初始化j从1开始

2、当 j<i 时,就遍历链表

3、若到链表尾p为空,说明I不存在

4、否则查找成功,返回节点P的数据

单链表的插入:

单链表的删除:

1、声明一节点P指向链表的第一个节点,初始化j从1开始。



算法复杂度分析:

单链表的插入和删除都是O(n),这样和线性表相比是没有什么优势的,但是对于插入删除多个数据,单链表只需在第一次O(n),后面的数据都是O(1)了。

所以:对于插入或删除数据越频繁的操作,单链表的优势就越明显。


单链表的整表创建:


单链表的整表删除:


单链表结构与顺序存储结构优缺点:



静态链表:

循环链表:

双向链表:















































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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值