- 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(3月21日)
单链表中的插入 第一种情况:在链表最前端插入 ; ; 第二种情况:在链表中间插入(插入到p引用的结点之后) ; 第三种情况:在链表末尾插入 ; 假定已有一个链表的表头为head,其data域的值由小到大排列,现插入一个新的结点newnode,要求插入后仍保持由小到大的顺序,通过前面的讨论,可将插入操作分为如下几种: 1.若链表为空,则将newnode的next置为null,并将head置为newnode 2.若链表非空,则首先确定newnode的插入位置。分三种情况: ①插在第一个结点之前: 将newnode的next指向head,再将head指向newnode ②插在链表中间(假设在q指向的结点后插入): 将newnode的next指向q的next ,再将q的next指向newnode ③插在链表的末尾: 将最后一个结点的next指向newnode,将newnode的next置为null 单链表中的删除 第一种情况: 删除第一个结点 第二种情况: 删除表中或表尾结点 * 顺序存储方式(顺序表) 优点:存储利用率高,存取速度快 缺点:插入、删除等操作时需要移动大量数据 链式存储方式(链表) 优点:适应表的动态增长和删除 缺点:需要额外的存储连接信息域的空间 2.2.3 链表 一、单链表 (Singly Linked List) 特点 每个元素(结点)由数据域和连接信息域(引用域)构成。 线性结构。 结点之间可以连续,可以不连续存储; 结点的逻辑顺序与物理顺序可以不一致; data next a0 a1 a2 a3 a4 NULL head 存放逻辑上与该结点相邻的下一个结点的存储地址 22 A2 null A4 94 A1 86 A3 A1 A2 A3 A4 null 22 38 86 94 存储地址 数据域 引用域 head 38 头引用head 链表存储结构示意图: 单链表由头引用head 唯一确定。 head代表链表中第一个结点的地址,则: 第一个结点的数据域A1可表示为: head.data 第一个结点的引用域可表示为: head.next 链表元素(结点)的访问 一般情况: p p.data p.next 假如p为对某一结点的引用,则该结点的数据域表示为: p.data 引用域表示为: p.next 如果对象q是对结点ai的引用,那么q.next就是对ai后继结点ai+1的引用。 ai ai-1 ai+1 q class Node { public int data; public Node next; //引用域是对自身类型的引用 public Node(int value) { data = value; next = null; } } 以下讨论信息域仅为一个整型数的单链表类的实现。 说明: Node类仅为后续链表类提供元素类型说明,故为方便起见,将其属性声明为public 。 引用域为空的表达形式在C#中是null,注意是小写。 首先定义结点类: 链表类分析: 属性: 由于单链表由头引用head唯一确定,所以可以只抽象出 head为其属性;但为了方便向表尾添加结点,还可将对 最后一个结点的引用tail抽象出来;同时考虑到方便窗体 事件对链表的操作,还可以抽象出一个对当前结点的引 用current。故抽象出如下三个属性: head : 头引用 tail : 尾引用 current:当前引用 常用方法: 构造方法 求单链表的长度 (即结点个数) 判断单链表是否为空 在单链表的末尾添加新元素 在单链表的某个结点前或后插入一个新结点 删除单链表的某个结点 获得单链表的某个结点的数据元素 在单链表中查找值为value的结点 此外,为了方便在窗体事件中对链表的操作,还可以在链表类中增加如下方法: 获取当前结点的数据域值 当前结点
您可能关注的文档
最近下载
- 康悦百万医疗保险C款介绍.pptx VIP
- 中国人寿.北京大学-中高净值家庭资产配置和保险保障白皮书.pdf
- Unit 2 Different families Part A Let’s learn & Listen and do(说课稿)-2024-2025学年人教PEP版(2024)英语三年级上册.docx
- 4D打印的应用、原理及发展前景.ppt VIP
- 22J403-1 楼梯 栏杆 栏板(一) (3).pdf VIP
- 青岛版(五四制)(2024)小学科学三年级上册《制作“冰琥珀”》教案.docx VIP
- 超低能耗建筑的增量成本与经济效益分析.pdf VIP
- 贵州省房屋建筑和市政工程标准施工招标文件(2021年版)【模板】.docx VIP
- 跨文化交际:中英文化对比 (13).ppt VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
文档评论(0)