- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DS02_线性表1
SIE. BIT //纯虚函数,将链表中第i个结点删去 virtual int Remove(int i)=0; //纯虚函数,将元素值为value的结点删去 virtual int Remove(type value)=0; protected: //链表的数据成员:头指针和表长 ListNodetype *head; int length; }; SIE. BIT 2.3 抽象链表成员函数的实现 设置函数:将第i个结点数据元素值设为x。 templateclass type bool ablisttype::Set(type x, int i) { ListNodetype *p = Find(i); //寻找第i个结点位置 if(p==NULL||p==head) //i值不合法或为空表,返回false return false; else p-data=x; //修改第i个结点的数据元素值 return true; } SIE. BIT 取值函数:返回第i个结点的数据元素值。 templateclass type type ablisttype::Get(int i) { //寻找指向第i个结点位置 ListNodetype *p=Find(i); assert (p p!=head); //p不空也不为表头 return p-data; //返回第i个结点的数据元素值 } if (p p!=head) return errData; SIE. BIT 清空链表: 用q指向第一个结点,当链表不空时,循链逐个删除,仅保留表头结点。 templateclass type void ablisttype::MakeEmpty() { ListNodetype *q=head-next; int i=1; //链表不空,所以至少有一个结点 while(i++ = length) //当链表不空时,删去表中所有结点 { head-next=q-next; delete q; //循链逐个删除,仅保留表头结点 q=head-next; } length=0; } SIE. BIT 搜索数据元素值为value的结点 templateclass type ListNodetype*ablisttype::Find1(type value) { ListNodetype *p=head-next; int i=1; //循环条件包含空链表的情况 while (i++ = length p-data!=value) p=p-next; //循链找数据元素值value的结点 return p; } 思考:如何优化? SIE. BIT 定位函数:返回链表中第i个元素结点的地址 templateclass type ListNodetype*ablisttype::Find(int i) { if(i0 || ilength) return NULL; if(i==0) return head; //i=0时返回表头结点的地址 ListNodetype*p=head-next; //让检测指针p指向表 中第1个结点 int j=1; while(p!=NULL ji) //循链扫描,至第i个结点地址 { p=p-next; j++; } return p; //返回第i个结点地址 } 与顺序表比较 SIE. BIT 下次课程预告:单链表、循环链表 数据结构与算法设计 数据结构与算法设计 (1) SIE. BIT 主要内容 线性表有关概念-—逻辑和存储 1 抽象链表类 2 单链表 3 循环链表 4 SIE. BIT 1 线性表有关概念 线性表的逻辑结构 线性表的顺序存储表示 线性表的链式存储表示 SIE. BIT 1.1 线性表的逻辑结构 线性表是n=0个数据元素a1,a2……an-1,an的有序集合。表中每个元素ai在表中的位置仅取决于元素本身的序号i。当1in时,ai的直
您可能关注的文档
- dell培训课件.pptx
- delphi 高级实例Stream的使用.doc
- DELL阵列卡配置参考---PERC7_8_9.doc
- Delphi_流操作的语法.doc
- DEM 的建立与应用实验报告.docx
- dem的创建.docx
- DFU夹具设计指导书.docx
- DICOM文件格式.pptx
- DFYL_CC_系统实施设计_v1.0.doc
- DHCP的使用.ppt
- 2023学年诸暨中学高三年级第二学期3月第二次模拟考试(政治)公开课教案教学设计课件资料.docx
- 运动的合成与分解(二)公开课教案教学设计课件资料.pptx
- 近五年浙江省各地图形的翻折(轴对称)原题公开课教案教学设计课件资料.doc
- 如何做教师-2019-11-13-中关村一小相关公开课教案教学设计课件资料.pptx
- 生活中的圆周运动 (水平面)正式版公开课教案教学设计课件资料.pptx
- 专题10 条件概率与全概率公式公开课教案教学设计课件资料.docx
- 金华市东阳市2019学年第二学期期末测试卷公开课教案教学设计课件资料.doc
- 5 琥珀(第二课时)【慕课堂版】公开课教案教学设计课件资料.pptx
- 项目五 打印米老鼠模型公开课教案教学设计课件资料.ppt
- (打印版)9月25日地理周练公开课教案教学设计课件资料.docx
最近下载
- 锅炉安全检查表.docx VIP
- 高盛-变革中的中国:聚焦产能周期_面对不均衡、判断转折点、穿越长周期.pdf VIP
- 参考资料(答案)-《电子商务安全技术(第三版)习题册》-A24-4085.pdf VIP
- 参考资料(答案)-《电子商务基础习题册》-A24-4098.pdf VIP
- 消化内镜室质量与安全管理手册(2022年).doc
- 新人教版必修一教学设计 unit1 Reading&Thinking 教学设计.docx VIP
- 杨亮讲单词5500词++E1-63汇总.pdf
- 衢州市社区工作者考试题库2024.pdf
- 初中数学九年级上册《特殊的平行四边形小结与复习》作业设计优秀案例.pdf
- 12J4-2 专用门窗标准图集.pptx
文档评论(0)