新课件13.链表.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
阶段小节 单链表的特点 单链表的创建,插入、查找和删除 循环链表与双向链表特点 实现链表的逆转 本章总结 主要讲述单链表的基本操作,包括插入、删除以及查找 双向循环链表 数据结构与算法初步 单向链表操作 主要讲述循环链表的基本操作 练习一 题目 1、建立链表:通过键盘输入数字,输入之前提示是否要增加一个链表节点,选择是输入一个数字并创建一个节点加入到链表中,选择否,创建链表结束 2、链表打印:从表头开始依次打印链表中的每个节点的值。(以下的每个操作后都打印链表看操作是否正确) 3、按值查找节点:从键盘中录入一个数字,在整个链表中查找,看整个链表中是否存在一个节点与录入的数字相等,相等则返回指向该节点的指针,并打印该节点,否则打印不存在该节点 4、按位置查找节点:从键盘录入一个数字n,从链表中找出第n个节点。并打印该节点。如果n的值超出链表节点的个数,则打印相应提示。 5、增加节点: (1)在某指定节点之前(或之后)增加一个节点,(2)在指定位置处增加一个节点、 6、删除一个节点: (1)删除指定值得节点(先查找该值是否存在,如果存在删除该节点,否则打印不存在) (2)指定位置的节点(先查找是否存在该节点) 第四章 预习检查 什么是线性链表 什么是循环链表 什么是双向链表 课程目标 本章概述 本章主要介绍运用结构体构造链表,以及链表的相应的操作 本章目标 熟练构造和掌握链表及相关添加,查找,删除操作。 重点 掌握链表的构造以及相关操作。 难点 链表的各种操作 本章结构 双向循环链表 数据结构与算法初步 单向链表操作 4.1链表 单链表 单链表上基本运算的实现 循环链表 双向链表 静态链表 单链表的应用实例 4.1.1 单链表 单链表的概述 动态进行存储分配的一种结构 在内存中不连续存放 头节点:指向第一个元素 节点:链表中的每一个元素(结构体) 两部分:实际数据和下一个节点地址 尾指针 定义 typedef struct node { datatype data; struct node *next; } LNode,*LinkList; /* 指向本结点类型的指针是实现链表的基础 */ 4.1.1 单链表 单链表的概述 动态进行存储分配的一种结构 在内存中不连续存放 头节点:指向第一个元素 节点:链表中的每一个元素(结构体) 两部分:实际数据和下一个节点地址 尾指针 定义 typedef struct node { datatype data; struct node *next; } LNode,*LinkList; /* 指向本结点类型的指针是实现链表的基础 */ 4.1.1 单链表 头指针来标识一个单链表,如单链表L、单链表H等,是指某链表的第一个结点的地址放在了指针变量 L、H 中, 头指针为“NULL”则表示一个空表 内存分配函数: void * malloc(unsigned int size) 分配成功返回指向起始地址的指针 分配不成功返回零 内存释放函数 void free(void *p) 申请链表空间 p=malloc(sizeof(LNode)); 4.1.1 单链表 带表头结点的单链表 表头结点位于表的最前端,本身不带数据,仅标志表头 设置表头结点的目的: 简化链表操作的实现 非空表 空表 ^ an a1 first first ^ 4.1.2.单链表上基本运算的实现 建立单链表 求表长 查找操作 插入 删除 4.1.2.1建立单链表 在链表的头部插入结点建立单链表 newnode-next = first ; first = newnode; (插入前) (插入后) first newnode newnode first 4.1.2.1建立单链表 在链表的头部插入结点建立单链表 算法如下: LinkList Creat_LinkList1( ) { LinkList L=NULL;/*空表*/ Lnode *s; int x; /*设数据元素的类型为int*/ scanf("%d",x); while (x!=flag) { s=malloc(sizeof(LNode)); s-data=x; s-next=L; L=s;

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档