- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
2025数据结构
绪论
数据结构是相互之间存在一种或多种特定关系的数据元素的集合
基本概念
数据
数据是信息的载体,是描述客观事物的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。
数据元素
数据元素是数据的基本单位
若干数据项组成一个数据元素
数据项是构成数据元素的不可分割的最小单位
数据对象
数据对象就是具有相同性质的数据元素的集合,是数据的一个子集
数据结构
数据结构是相互之间存在一种或多种特定关系的数据元素的集合
逻辑结构
指数据元素之间的逻辑关系
与数据的存储无关,独立于计算机
存储结构(物理结构)
数据的运算
数据类型
原子类型
其值不可再分
结构类型
其值可以再分成若干成分的数据类型
抽象数据类型
一个数学模型及定义在该数学模型上的一组操作
数据结构
逻辑结构
线形结构
一般线性表
受限线性表
栈
队列
串
线性表推广
数组
非线性结构
树形结构
一般树
二叉树
图状结构
有向图
无向图
集合
存储结构(物理结构)
顺序存储
链式存储
索引存储
散列存储
算法效率
时间复杂度
T(n)=O(f(n))
只考虑阶数高的地方
规则
加法规则
多项相加,只留最高项且系数为1
减法规则
多项相乘,都保留
常见时间复杂度
例题
线性表
线性表是具有相同数据类型的n(n=0)个数据元素的有限序列
逻辑结构
除第一个元素外,每个元素有且仅有一个直接前驱
除最后一个元素外,每个元素有且仅有一个直接后驱
特点
表中元素有限
表中元素具有逻辑上的顺序性,有其先后顺序
表中元素都是数据元素,每个元素都是单个元素
表中元素的数据类型都是相同的,每个元素都占有相同大小的存储空间
表中元素具有抽象性,即仅讨论元素之间的逻辑关系
存储结构
顺序表示
顺序表
线性表的顺序存储又称顺序表
特点
逻辑顺序和其存储的物理顺序相同
主要优缺点
优点
可以随机访问
查找某元素时间复杂度为O(1)
存储密度高
缺点
插入和删除需要移动大量元素
插入操作每次需要移动n/2个元素,删除操作需要移动(n-1)/2个元素
顺序存储分配一段连续的存储空间,不够灵活
存储结构代码
静态分配
一旦空间占满,再加入新数据就会溢出,导致程序崩溃
动态分配
一旦空间占满,就另外开辟一块更大的存储空间,将原表中的元素全部拷贝到新空间?,进而达到扩充数组存储空间的目的
基本操作
初始化
静态分配
动态分配
插入
时间复杂度
删除
时间复杂度
按值查找
时间复杂度
例题
链式表示
单链表
线性表的链式存储
优缺点
优点
插入和删除不需要移动元素
缺点
失去顺序表可随机存取的特点
查找特定结点,需要从表头开始遍历,依次查找
浪费存储空间
存储结构定义
单链表的第一个数据结点之前附加的结点称为头结点
头结点的数据域可以不设任何信息,可以记录表长等信息
头指针和头结点的关系
头指针都始终指向链表的第一个结点(不带头结点的首元结点、带头结点的头结点)
空表中头结点的指针域为空
头结点是带头结点的链表的第一个结点,此时首元结点则是下一个结点
不带头结点的链表,此时第一个结点称为首元结点
基本操作
初始化
不带头结点
空表无任何结点(防止脏数据)
带头结点
查找
按值查找
时间复杂度为0(n)
按序号查找
时间复杂度为0(n)
插入
前插
s→next=p→next
修改指针域,不可颠倒
p→next=s;
temp=p→data
交换数据域
p→data=s→data
S-data=temp
后插
s→next=p→next
p→next=s
删除
删除结点*p
q=p→next
p→data=p→next→data
p→next=q→next
free(q)
双链表
为了解决单链表访问结点的前驱(插入/删除时)只能从头开始遍历的缺点
插入
前插法:
p-prior-next=q;q-next=p;q-prior=p-prior;p-prior=q;黄色部分不可颠倒顺序(不能断链)
后插法
第1步必须在第4步之前
删除
循环链表
循环单链表
判空条件是头结点的next域是否等于头指针L
有时循环单链表不设头指针而设尾指针
原因:设尾指针,r-→next即为头指针,插入元素仅用0(1)
带头结点、尾指针的单循环链表
寻找尾结点及尾结点的前驱结点所需时间最少
应用
操作/时间复杂度
删除首元素
删除末元素
需要改变其前驱结点,循环单链表不如循环双链表
首元素后插入
末元素后插入
带头结点
1头指针、1尾指针
O(1)
O(n)
O(1)
O(1)
1头指针、0尾指针
O(1)
O(n)
O(1)
O(n)
0头指针、1尾指针
O(1)
O(n)
O(1)
O(1)
循环单链表中设尾指针最快
不带头结点
您可能关注的文档
最近下载
- 2024年安徽省高考化学真题卷(含答案与解析).pdf VIP
- 司马光的故事市公开课一等奖省赛课微课金奖PPT课件.pptx
- 2014010904013王亮森题目四.docx
- 《国有企业管理人员处分条例》考试题库200题(含答案).docx
- 2023年楚雄师范学院计算机科学与技术专业《操作系统》科目期末试卷A(有答案).docx VIP
- 《接力切换技术原理》课件.pptx VIP
- 电子科技大学820计算机专业基础考研真题试题(含答案)2011—2016年.pdf
- 公司治理:基本原理及中国特色-姜付秀-第10章+法律机制.pptx VIP
- 课件:兽药的合理使用.ppt
- 弗莱雷《被压迫者教育学》.pdf
文档评论(0)