- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
§2线性表
§2.1线性表的定义及其基本运算
线性表是n个数据元素(结点)a1,a2,……,an组成的有限序列.其中数据元素的个数n定义为表的长度.当n=0时称为空表.
线性表的常用的运算:
(1)置空表.
(2)求线性表L的长度.
(3)取表中的第i个结点
(4)按值查找.
(5)插入:在表L的第i个位置上插入新的结点X.
(6)删除:删除表L的第i个结点.
线性表可采用两种存储结构:顺序存储和链式存储.
§2.2线性表的顺序存储结构
它的特点是逻辑上相邻的结点其物理位置亦相邻,下标可以看成是结点的相对地址.
·运算:
1)插入
用顺序表作为线性表的存储结构时,由于结点的物理顺序必须和结点的逻辑顺序保持一致,因此我们必须将表中位置n,n-1,...,i上的结点依次后移到位置n+1,n,...,i+1上,腾出第i个位置,然后在该位置上插入新结点x.仅当插入位置i=n+1时,才无须移动结点,直接将x插入表的末尾.
2)删除
在顺序表上实现删除运算也必须移动结点,才能反映出结点间逻辑关系的变化.仅当i=n,才能简单地删除终端结点,无须移动结点;
3)取表S中的第i个结点:直接以S[i]表示
4)查找
须顺序取出表中元素逐一比较
·顺序表有如下优缺点:
优点:
(1)无须为表示结点间的逻辑关系而增加额外的存储空间;
(2)可以方便地随机存取表中的任一结点.
缺点:
(1)插入和删除运算不方便,除表尾的位置外,在表的其它位置上进行插入和删除操作都必须移动大量的结点,其效率较低;
(2)由于顺序表要求占用连续的存储空间,存储分配只能预先进行(静态分配),因此当表变化较大时,难以确定合适的存规模,若按可能达到的最大长度预先分配表空间,则可能造成一部分空间长期闲置而得不到充分利用,若事先对表长估计不足,则插入操作可能使表长超过预先分配的空间而造成溢出.
§2.3线性表的链式存储结构
从链接方式上可分为:单链表、循环链表和双链表.
1)单链表
2)循环链表
3)双链表
§2.3.1单链表基本运算
一、建立单链表
建立链表就是要在表中逐一增加新的结点.为此,必须反复执行下列步骤:
i)使用过程NEW,获得新的存储单元;
ii)读入新结点分量的数据域
iii)将指针向后推移,跟踪链表的增长到链表的长度满足要求为止.
(1)头插法建表
该方法从一个空表开始,重复读入数据,生成新结点,将读入数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头上,直至读入结束标志为止.
【练习1】:完成下面的程序{逐个输入字符型数据,以$为结束符,用头插法建立单链表}
programlian;
typepoint=^node;
node=Record
data:char;
next:point;
end;
varCh:char;
Head,S,R:point;
begin
Head:=nil;{将单链表置为空表}
read(Ch);{读入第一个结点的值}
while(Ch$)dobegin
new(S);{生成新结点S}
{将读入数据放到新结点的数据域中}
{将新结点插入链表的表头上}
read(Ch);{读入下一个结点的值}
end;
end.
(2)尾插法建表
该方法从一个空表开始,重复读入数据,生成新结点,将读入数据存放到新结点的数据域中,然后将新结点插入到当前链表的表尾上,直至读入结束标志为止.为此必须增加一个尾指针R,使其始终指向当前链表的表尾上.
【练习2】:完成下面的程序
{尾插法建立单链表Head,数据说明如前}
begin
Head:=nil;{将链表Head置为空表}
R:=nil;{尾指针初值为空}
read(Ch);{读入第一个结点的值}
while(Ch$)dobegin{$为输入结束符}
您可能关注的文档
- 高中生物竞赛辅导试题强化材料.doc
- 高中生物竞赛培优教程:第五章 遗传学与进化.doc
- 高中生物竞赛试题 第四章 生命活动的调节(二).doc
- 高中信息技术 竞赛班数据结构专项培训教程 01数据结构概论教案.doc
- 高中信息技术 竞赛班数据结构专项培训教程 06广义表教案.doc
- 高中信息技术 竞赛班数据结构专项培训教程 08图教案.doc
- 高中信息技术奥林匹克信息学竞赛班第六课集合与记录类型的综合应用第二阶段培训.doc
- 高中信息技术奥林匹克信息学竞赛班第七课过程与函数提高第二阶段培训.doc
- 2026年江苏城乡建设职业学院单招职业技能笔试模拟试题带答案详解.docx
- 2026年中原科技学院高职单招职业适应性考试模拟试题带答案详解.docx
- 2026年绵阳飞行职业学院高职单招职业适应性考试模拟试题带答案详解.docx
- 2026年雅安职业技术学院高职单招职业适应性考试备考题库带答案详解.docx
- 咸阳杨陵区七年级数学下册综合提升综合训练思维拓展卷及解析.docx
- 2026年滁州城市职业学院高职单招职业适应性考试模拟试题带答案详解.docx
- 2026年福建船政交通职业学院单招职业技能笔试备考试题带答案详解.docx
- 2026年雅安职业技术学院高职单招职业适应性考试参考题库带答案详解.docx
- 2026年阿克苏职业技术学院高职单招职业适应性测试备考题库带答案详解.docx
- 2026年福建卫生职业技术学院高职单招职业适应性测试参考题库带答案详解.docx
- 2026年信阳艺术职业学院单招职业技能笔试备考题库带答案详解.docx
- 2026年新疆科信职业技术学院高职单招职业适应性测试参考题库带答案详解.docx
最近下载
- 2026年春人教版新版八年级下册英语单词表(每日背默共22天).pdf VIP
- 中考生物总复习题型突破1识图题.pptx VIP
- 浅谈火场供水存在的主要问题及对策.doc VIP
- 中考生物总复习(冀少版)精品:重要题型突破 题型:识图题.ppt VIP
- 中考生物总复习(冀少版)精品:重要题型突破 题型:实验探究题.ppt VIP
- 兴国宾馆深度能源审计综合报告.pdf VIP
- 第二章 生物的遗传和变异(章末复习课件)-八年级生物下册(冀少版).pptx VIP
- 2020-2024伊利集团四大能力(指标细化)配套word15页7114字数.docx VIP
- 电费电价培训.pptx
- 初三化学2025年上学期期末综合试卷(含答案).docx VIP
原创力文档


文档评论(0)