- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4.5.6讲线性表
不同的数据结构其操作集不同,但下列操作必不可缺: 1.结构的生成; 2.结构的销毁; 3.在结构中查找满足规定条件的数据元素; 4.在结构中插入新的数据元素; 5.删除结构中已经存在的数据元素; 6.遍历。 3.1 线性表的基本概念及运算 线性表是由n(n≥0)个数据元素a1a2…an 组成的一个有限序列。表中的每一个数据元素,除了第一个外,有且只有一个前件(直接前趋);除了最后一个外,有且只有一个后件(直接后继)。即线性表或是一个空表,或可以表示为:(a1,a2,…,ai,…,an) 其中ai (i = 1,2,…,n)是属于数据对象的元素,通常也称其为线性表中的一个结点。 线性表的长度及空表定义: 线性表中数据元素的个数n(n≥0)定义为线性表的长度。 当线性表的长度为0 时,称为空表。 ai 是第i个数据元素,称i为ai 在线性表中的位序。 例3.1-1:某班的学生情况登记表, 如表所示。 学生情况登记表中每一个学生的情况称为一个记录,或者结点。 6. Insert(L,x,i) 插入,在L中第i个位置前插入值为x的元素。使得原编号为i, i+1,…n的数据元素变为编号为i+1,i+2,…,n+1的数据元素。表长加1。 7. Delete(L,i) 删除,删除表L中第i个数据元素。使得原编 号为i+1,i+2,…,n 的数据元素变为编号为i,i+1,…n的 数据元素。表长减1。 8. Prior(L,ai) 取直接前趋,取ai的直接前趋元素的值,且2=i=n,则存在前驱结点。 9. Next(L,ai) 取直接后继,取ai的直接后继元素的值,且1=i=n-1 ,则存在后继结点。 说明: (1) 每个基本运算用一个函数来表示。 (2) L是指向线性表结构的指针。 对线性表进行运算,在算法中可以调用基本运算(用户自己编写),而基本运算的实现与线性表的存储结构有关。 void purge (sequenlist *L) { i=1, j; //位序的初值为1 datatype x, y; while (iLength(L)) //每次循环使当前第i结点是无重复值 的结点 { x=Get(L,i); //取ai赋给x j=i+1; while(j=Length(L)) //将ai之后的各结点aj与ai比较,若aj 与ai相同, 则删除aj { y=Get(L,j); //取aj赋给y if(x==y) Delete(L,j); //相同,删除aj else j++; //不同,准备取下一个aj } i++; } } 3.2 顺序表 3.2.1 顺序表的定义 线性表的一种最简单的存储方法是顺序存储,也称为顺序分配,即在计算机内存中用一组地址连续的存储单元依次存储线性表中的各个数据元素,称为线性表的顺序存储结构。顺序存储的线性表简称为顺序表。 线性表的顺序存储结构具有以下两个基本特点: ① 线性表中所有元素所占的存储空间是连续的。 ② 线性表中各数据元素在存储空间中是按逻辑顺序依次 存放的。 因为程序设计语言中的一维数组与计算机中实际的存储空间结构是类似的,这就便于用程序设计语言对线性表进行各种运算处理。 在程序设计语言中,通常定义一个一维数组来表示线性表的顺序存储空间。 假设线性表的每个数据元素需占用C个存储单元,并以所占的第一个单元的存储地址作为数据元素的起始存储位置,则线性表的第i个元素ai的存储位置为: Loc(ai) = Loc(a1)+(i-1)*C 其中Loc(a1)是顺序表的第一个数据元素a1的存储位置,通常称作顺序表的起始位置或基地址。 线性表中第i+1个数据元素的存储位置Loc(ai+1)和第i个数据元素的存储位置Loc(ai)之间满足下列关系: Loc(ai+1) = Loc(ai)+C 1≤i≤n 根据线性表的顺序存储结构的特点,只要确定了存储线性表的起始位置,线性表中任一数据元素都可随机存取,所以,线性表的顺序存储结构是一种随机存取的存储结构,可以对顺序表顺序存取或随机存取。 void purge (sequenlist *L) { int i=1, j, k ;
您可能关注的文档
最近下载
- 2025呼和浩特粮油收储有限公司招聘18名工作人员笔试参考题库附答案解析.docx VIP
- 办公室室内设计任务书.doc VIP
- UPS性能功能测试规范V.doc VIP
- 西门子111报文详细.xls VIP
- 供电技术第五版同向前课后习题答案解析.docx VIP
- xxxxxx项目室内设计任务书.pdf VIP
- 2025呼和浩特粮油收储有限公司招聘18名工作人员笔试模拟试题及答案解析.docx VIP
- 400字格子方格作文纸稿纸模板A4纸可直接打印.docx VIP
- 高速铁路概论:电气化铁道供电PPT教学课件.pptx VIP
- 2025呼和浩特粮油收储有限公司招聘18名工作人员笔试备考试题及答案解析.docx VIP
文档评论(0)