版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
线性表顺序表链表顺序表与链表的比较定义:
n(0)个数据元素的有限序列,记作(a1,…ai-1,ai,ai+1,…,an)
其中,ai
是表中数据元素,n是表长度。特点:同一线性表中元素具有相同特性。相邻数据元素之间存在序偶关系。除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。除最后一个元素外,其他每一个元素有一个且仅有一个直接后继。 定义:将线性表中的元素相继存放在一个连续的存储空间中。
存储结构:数组。特点:线性表的顺序存储方式。存取方式:顺序存取顺序存储结构示意图458990674078
012345顺序表的存储方式:LOC(ai+1)=LOC(ai)+(i-1)*lLOC(ai)=LOC(a1)+(i-1)*l
a1
a2
…ai………an12…i………n
aa+l…a+(i-1)*l………a+(n-1)*l
idle链表是线性表的链接存储表示单链表静态链表循环链表双向链表定义:用一组地址任意的存储单元存放线性表中的数据元素。数据域指针域ZHANG13WANG1LInullZHAO37WU7ZHOU19SUN25存储地址17131925313731头指针每个元素由结点(Node)构成, 它包括两个域:数据域Data和指针域Linkdatalink存储结构:链式存储结构特点:存储单元可以不连续。存取方式:顺序存取。Node单链表结构单链表的类型定义typedefcharListData;typedefstructnode{//链表结点
ListDatadata; //结点数据域structnode*link;//结点链域}ListNode;typedefListNode*LinkList;//链表头指针LinkListfirst;//链表头指针单链表的基本运算插入(三种情况)
第一种情况:在第一个结点前插入
newnode->link=first;first=newnode;(插入前)(插入后)
firstnewnodenewnodefirst第二种情况:在链表中间插入
newnode->link=p->link; p->link=newnode;(插入前)(插入后)newnodepnewnodep第三种情况:在链表末尾插入
newnode->link=p->link; p->link=newnode;p(插入前)(插入后)newnodenewnodep删除 在单链表中删除ai结点
q=p->link; p->link=q->link;删除前删除后ai-1aiai+1pqpai-1ai+1ai表头结点位于表的最前端,本身不带数据,仅标志表头。设置表头结点的目的:简化链表操作的实现。非空表空表^ana1firstfirst^ q->link=p->link; p->link=q;firstqfirstqfirstq^firstq^pppp插入前插入后qq插入pp
q=p->link;p->link=q->link;deleteq;删除前first(非空表)(空表)first^firstpq^pqfirst删除后从一个空表开始,重复读入数据:生成新结点将读入数据存放到新结点的数据域中将该新结点插入到链表的前端直到读入结束符为止。firstqfirstq^^每次将新结点加在链表的表尾;尾指针r,总是指向表中最后一个结点,新结点插在它的后面;^qfirst^r^first^r特点:最后一个结点的link指针不为NULL,而是指向头结点。只要已知表中某一结点的地址,就可搜寻所有结点的地址。存储结构:链式存储结构
带表头结点的循环链表an-1firsta1a0first(空表)(非空表)用循环链表求解约瑟夫问题n个人围成一个圆圈,首先第2个人从1开始一个人一个人顺时针报数,报到第m个人,令其出列。然后再从下一个人开始,从1顺时针报数,报到第m个人,再令其出列,…,如此下去,直到圆圈中只剩一个人为止。此人即为优胜者。例如n=3m=8双向链表结点结构:priordatanext指向直接前驱指向直接后继非空表空表firstfirsttypedefintListData;typedefstructdnode{ListNodedata;structdnode*prior,*next;}DblNode;typedefDblNode*DblList;q->prior=p; q->next=p->next;p->next=q;q->next->prior=q;在结点*p后插入25firstfirst314815pp31482515qq->prior=p; q->next=p->next;
p->next=q;q->next->prior=q;
pqfirst25firstp在结点*p后插入25p->next->prior=p>prior;p->prior->next=p>next;(非空表)删除48firstfirst314815p3115p->next->prior=p->prior;p->prior->next=p->next;first31p删除31基于空间的比较存储分配的方式顺序表的存储空间是静态分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省突发职业卫生应急预案
- 2025年税务师资格考试试卷及答案
- 3.2《蜀相》课件统编版高二语文选择性必修下册
- 2026年护士岗位职责创新与未来趋势
- 2025年世界地球日地学知识竞赛试题(附答案)
- 2026年人工智能客服服务合同协议
- 2026农业科技行业投资机会分析及发展战略研究报告
- 2026农业科技产业发展现状与未来发展趋势研究报告
- 2026农业生物技术产业前沿进展市场竞争现状分析投资选择发展建议
- 2026农业现代化行业供需平衡现状分析及可持续发展投资报告
- 2026年上海市闵行区初三下学期二模数学试卷和答案
- 防范银狐木马病毒与补贴诈骗信息课件
- 2025年广西壮族自治区崇左市初二学业水平地理生物会考真题试卷(含答案)
- (二模)南昌市2026届高三年级四月检测英语试卷(含答案)
- 河南省活性炭码上换监管预警系统-20260415
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 气胸的急救及护理
- 科技创新引领新时代-三次科技革命及其影响下的社会发展-高三统编版(2019)历史一轮复习
- 三个和尚的故事图画完整版讲述
- 高中地理 地域文化和城乡景观 教学设计
- 《蜀相》教学课件(PPT 28页)
评论
0/150
提交评论