- 1、本文档共96页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 线性表 第二章 线性表 第二章 线性表 第二章 线性表 线性结构特点:在数据元素的非空有限集中 存在唯一的一个被称作“第一个”的数据元素 存在唯一的一个被称作“最后一个”的数据元素 除第一个外,集合中的每个数据元素均只有一个前驱 除最后一个外,集合中的每个数据元素均只有一个后继 2.1 线性表的逻辑结构 定义:一个线性表是n个数据元素的有限序列 2.2.1 线性表的顺序存储 顺序表: 定义:用一组地址连续的存储单元存放一个 线性表叫顺序表 元素地址计算方法: LOC(ai)=LOC(a1)+(i-1)*d 1≤i≤n LOC(a i+1)=LOC(a i)+d 其中: d—一个元素占用的存储单元个数 LOC(a1) —基地址 LOC(a i)—线性表第i个元素的地址 顺序映象(sequential mapping) 特点: 实现逻辑上相邻—物理地址相邻 实现随机存取 实现:可用C语言的一维数组实现 ⒉插入运算 定义:线性表的插入是指在第I(1?i ? n+1)个元素之前插入一个新的数据元素x,使长度为n的线性表 ⒊删除运算 定义:线性表的删除是指将第i(1?i ? n)个元素删除,使长度为n的线性表 顺序存储结构的优缺点 优点 逻辑相邻,物理相邻 可随机存取任一元素 存储空间使用紧凑 缺点 插入、删除操作需要移动大量的元素 预先分配空间需按最大空间分配,利用不充分 表容量难以扩充 线性链表(单链表) (Linked List) 是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 特点: 用一组任意的存储单元存储线性表的数据元素 利用指针实现了用不相邻的存储单元存放逻辑上相邻的元素 每个数据元素ai,除存储本身信息外,还需存储其直接后继的信息 链表是由一个个结点构成的,结点定义如下: 单链表特点 它是一种动态结构,整个存储空间为多个链表共用 不需预先分配空间 指针占用额外存储空间 不能随机存取,查找速度慢 循环链表(circular linked list) 循环链表是表中最后一个结点的指针指向头结点,使链表构成环状 特点:从表中任一结点出发均可找到表中其他结点,提高查找效率 操作与单链表基本一致,循环条件不同 单链表p或p-next=NULL 循环链表p或p-next=H q-next=q- next - next; ⒌删除操作 设p指向单链表中某结点,删除*p。要实现对结点*p的删除,首先要找到*p的前驱结点*q,然后完成指针的操作即可。 q a b c p 显然找*p前驱的时间复杂性为O(n)。 q-next=p-next; free(p); 附礼笆耘商槐甚计乏洪玖烫界瑚娶楔也戊梢哄胸鬃史芯耪滴描悟蛆暮贰污数据结构教程2 线性表数据结构教程2 线性表 若要删除*p的后继结点(假设存在),则可以直接完成: s=p-next; p-next=s-next; free(s); 该操作的时间复杂性为O(1) 。 q a b c p 浮瞳抒喊臆恿指邹斜毖疮猴狄缀制吠讣卑肄稽书汇扁锦纱爽健颧王篆妄匪数据结构教程2 线性表数据结构教程2 线性表 删除运算:Del_LinkList(L,i) 算法思路: 1.找到第i-1个结点;若存在继续2,否则结束; 2.若存在第i个结点则继续3,否则结束; 3.删除第i个结点,结束。 int Del_LinkList(LinkList L,int i) /*删除单链表L上的第i个数据结点*/ { LinkList p,s; p=Get_LinkList(L,i-1); /*查找第i-1个结点*/ if (p==NULL) { printf("第i-1个结点不存在");return -1; } else { if (p-next==NULL) { printf("第i个结点不存在"); return 0; } else { s=p-next; /*s指向第i个结点*/ p-next=s-next;
您可能关注的文档
- 数学模型的建立过程.doc
- 数字逻辑电路 2逻辑函数及其简化.ppt
- 数学:1.1.3《集合的基本运算(全集与补集)》课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算(第2课时)》课件(新人教A版必修1).ppt
- 数学:1.1.3 集合的基本运算 第1课时课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算(二)》课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算》课件(新人教A版必修1).ppt
- 数学:1.1.3《集合的基本运算》测试(新人教A版必修1).doc
- 数学:1.2.1《常数函数与幂函数的导数》.ppt
- 数学:1.2.3《循环语句》课件(新人教B版必修3).ppt
- 2024年01月山西省岚县人民法院2024年招考3名司法辅助人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月宁夏银川市贺兰县人民医院岗位招考聘用11人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月山东烟台莱山区结合事业单位招考聘用征集本科及以上学历毕业生入伍18人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月广西玉林陆川县公开招聘重点领域急需紧缺(高层次)人才60人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月广东中山市南头镇人民政府招考聘用合同制工作人员3人笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月政协富宁县委员会委员联络服务中心(云南省)2024年考察调(流)动3名工作人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月广州市海珠区琶洲数字经济创新发展服务中心2024年公开选调1名事业编制工作人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月宁波市鄞州区市场监管局2024年招考3名编外人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月山东省淄博市文昌湖省级旅游度假区事业单位2024年度面向喀什籍高校毕业生综合类(定向)岗位公开招考工作人员笔试历年典型考题及考点剖析附答案详解.docx
- 2024年01月山东聊城东阿县教育类事业单位引进优秀青年人才3人笔试历年典型考题及考点剖析附答案详解.docx
文档评论(0)