- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十讲线性表5
数据结构和算法 作者:小甲鱼 让编程改变世界 Change the world by program 上节课我们提到了,头结点的数据域一般不存储任何信息,谁叫它是第一个呢,有这个特权。 拿个小旗子即可: 头指针与头结点的异同 头指针与头结点的异同 那有童鞋就疑惑了,既然头结点的数据域不存储任何信息,那么头指针和头结点又有何异同呢? 头指针 头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针。 头指针具有标识作用,所以常用头指针冠以链表的名字(指针变量的名字)。 无论链表是否为空,头指针均不为空。 头指针是链表的必要元素。 头指针与头结点的异同 头结点 头结点是为了操作的统一和方便而设立的,放在第一个元素的结点之前,其数据域一般无意义(但也可以用来存放链表的长度)。 有了头结点,对在第一元素结点前插入结点和删除第一结点起操作与其它结点的操作就统一了。 头结点不一定是链表的必须要素。 No pic you say a J8… 单链表存储结构 单链表图例: 空链表图例: 单链表存储结构 我们在C语言中可以用结构指针来描述单链表。 typedef struct Node { ElemType data; // 数据域 struct Node* Next; // 指针域 } Node; typedef struct Node* LinkList; 我们看到结点由存放数据元素的数据域和存放后继结点地址的指针域组成。 单链表存储结构 假设p是指向线性表第i个元素的指针,则该结点ai的数据域我们可以用p-data的值是一个数据元素,结点ai的指针域可以用p-next来表示,p-next的值是一个指针。 那么p-next指向谁呢?当然指向第i+1个元素!也就是指向ai+1的指针。 问题: 如果p-data = ai,那么p-next-data = ? 答案:p-next-data = ai+1。 单链表的读取 在线性表的顺序存储结构中,我们要计算任意一个元素的存储位置是很容易的。 但在单链表中,由于第i个元素到底在哪?我们压根儿没办法一开始就知道,必须得从第一个结点开始挨个儿找。 因此,对于单链表实现获取第i个元素的数据的操作GetElem,在算法上相对要麻烦一些,大家不妨先思考一下。 单链表的读取 获得链表第i个数据的算法思路: 声明一个结点p指向链表第一个结点,初始化j从1开始; 当ji时,就遍历链表,让p的指针向后移动,不断指向一下结点,j+1; 若到链表末尾p为空,则说明第i个元素不存在; 否则查找成功,返回结点p的数据。 有了以上的思路提示,小甲鱼邀请大家再度进行头脑风暴:算法的C语言实现代码,GetElem.c 单链表的读取 说白了,就是从头开始找,直到第i个元素为止。 由于这个算法的时间复杂度取决于i的位置,当i=1时,则不需要遍历,而i=n时则遍历n-1次才可以。因此最坏情况的时间复杂度为O(n)。 由于单链表的结构中没有定义表长,所以不能实现知道要循环多少次,因此也就不方便使用for来控制循环。 其核心思想叫做“工作指针后移”,这其实也是很多算法的常用技术。
您可能关注的文档
- 初级微观经济学第5章(完全竞争).ppt
- 个别化计划1.doc
- 2012届高三一轮复习名师一号文科数学第十模块算法初步综合检测卷.doc
- 九年级英语1--15练习题.doc
- 管理会计(英文版)课后习题答案(高等教育出版社)chapter10.doc
- 3.17勾股定理的逆定理.ppt
- 语法十六:代词.doc
- 第四课鲜艳的包装纸.ppt
- 七年级英语下Units4-5重点知识与练习.doc
- 计算机网络整理(下沙).doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)