线性表

本文详细介绍了线性表的定义、抽象数据类型和相关操作,包括顺序存储结构和链式存储结构。讨论了顺序存储结构的插入和删除操作的时间复杂度,并对比了顺序表与单链表的效率。同时,提到了静态链表、循环链表以及双向链表的概念,以及它们的插入和删除操作。动态展示了各种链表操作,如单链表的整表创建、删除等。
摘要由CSDN通过智能技术生成

线性表

线性表的定义:由0个或者多个元素数据元素组成的有限序列
1.先来后到
2. 第一个是前驱,最后一个是后继,只有一个前驱和一个后继
3. 处理元素有限

抽象数据类型:整型,浮点型,字符型,结构类型
线性表相关操作:创建,删除,插入

顺序存储结构:依次存储元素
插入算法的思考
1.插入位置不合理,异常
2.线性表长度大于数组长度,异常或增容
3.从最后一个位置遍历到i,分别向后移动一个位置
4.插入元素到i
5.线性表长度+1

删除算法思考
1.删除位置不合理,异常
2.取出删除元素
3.删除元素开始遍历到最后,分别往前移一个位置
4.表长-1

分析插入和删除的时间复杂度
1.最好:在最后一位发生,O(1)
2.最坏:在第一位发生,要移动所有元素向前或者向后,O(n)
3.取平均值,还是O(n)
4.比较适合元素稳定,只需要存取元素

链式存储结构特点:除了存储本身信息,还需要存储一个指示其后继元素的存储地址的信息(指针)

单链表:每个结点只包含一个指针域,有头指针,最后一个为空。
单链表的示意图
在这里插入图片描述头节点和头指针
头节点的数据域不存储任何的信息,通常存链表的长度,不是必要元素。
头指针在头节点之前,指向头节点,作为指向第一个结点的指针,头指针由标识作用,常用头指针冠以链表名字,而且是必要元素,不可为空。
指针:p指向第i个元素,p->next是指针,p->data是数据元素。如果p=ai, p->next=ai+1的指针,p->next->data=ai+1

单链表的读取元素i
算法思路
1.声明一个结点p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值