第二章-线性表 1.线性表的定义和基本操作

定义#

具有相关数据类型的n个数据元素的有限序列叫做线性表.
术语:
位序,表头元素,表尾元素,直接前驱,直接后继.

线性表的基本操作
基本记忆思路: 创建销毁,增删改查.

知识回顾#

两种存储结构#

顺序表(顺序存储)#

顺序存储方式实现的线性表.

1 使用静态数组,实现顺序表
初始化时,顺序表长度设置为0

c++共有三种传递值的方式:
1.值传递
2.引用传递(c++独有,c没有)
3.指针或地址传递

2 动态分配
malloc和free函数搭配使用.

顺序表的特点:

  • 随机访问,O(1)时间内就可以找到第i个元素.
  • 存储密度高,只存储数据元素(不存储指针数据)
  • 宽展容量不方便,(即使采用动态分配方式实现,扩展长度的时间复杂度较高)

插入的时间复杂度
问题规模n=l.length(表长)
最好O(1)
最坏O(n),在第一个位置插入,全部元素都要后移.
image

删除的时间复杂度
最好情况O(1)
最坏情况O(n)
平均情况O(n)

顺序表的查找
最好情况O(1)
最坏情况O(n)
平均时间复杂度(N+1)/2即O(n)
需要注意位置和数组下标的关系

链表(链式存储)#

是否带头结点
image
某结点之前插入数据
思路是交换数据(偷天换日的行为!)
指定节点的删除,思路也是交换数据.
数据结构常见时间复杂度
image

双向链表#

image

初始化 prior,next都指向null
p后插q结点的操作
简易记法:
出发去p的后继节点->从p的原后继节点回来(需要判空,是否有后继节点)
->去p->从p回来

循环链表#

image

静态链表#

操作系统FAT表,会用到静态链表

线性表和链表的比较#

基本操作
image

posted @   春江天一色  阅读(43)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
主题色彩