ImageVerifierCode 换一换
格式:PPT , 页数:72 ,大小:362.50KB ,
资源ID:15586532      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15586532.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(省二级(C语言)考试真题重点题型分类总结PPT推荐.ppt)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

省二级(C语言)考试真题重点题型分类总结PPT推荐.ppt

1、3)有限性:线性表中元素的个数n称为线性表的长度,n=0时称为空表4)有序性:ai是线性表的第i个元素,称i为数据元素ai的序号,每一个元素在线性表中的位置,仅取决于它的序号;二二 线性表根据其存储结构不同可分为:线性表根据其存储结构不同可分为:链式存储结构的链表顺序存储结构的顺序表结束第 5 页一一 线性链表的概念线性链表的概念1线性链表1、线性链表线性链表a a4 4a a3 3a a1 1a a2 2 0101010241014101010121014101610181020102210241026用一组任意的存储单元存储线性表中的数据元素,对每个数据元素除了保存自身信息外,还保存了直接

2、后继元素的存储位置。用线性链表存储线性表时,数据元素之间的关系 是通过保存直接后继元素的存储位置来表示的结束第 6 页线性链表图示ai-1aia2a1ai+1nan用线性链表存储线性表时,数据元素之间的关系 是通过保存直接后继元素的存储位置来表示的2线性链表图示一般来说,我们并不需要写出直接后继的实际地址,为直观起见,通常用如下所示的图表示链表,其中,箭头表示相应单元中保存的是它所指向结点的存储地址。headhead是头指针是头指针headhead结束第 7 页结点结点:数据元素及直接后继的存储位置(地址)组成一个数据元素的存储结构,称为一个结点;结点的数据域结点的数据域:结点中用于保存数据元

3、素的部分;结点的指针域结点的指针域:结点中用于保存数据元素直接后继存储地址的部分;3 线性链表有关术语线性链表有关术语存储数据元素存储数据元素存储后继结点存储后继结点 存储地址存储地址结点结点数据域数据域指针域指针域结束第 8 页头指针:头指针:用于存放线性链表中第一个结点的存储地址存储地址;空指针:不指向任何结点,线性链表最后一个结点的指针通常是空指针,空指针一般用NULL表示;头结点:线性链表的第一元素结点前面的一个附加结点,称为头结点;带头结点的线性链表带头结点的线性链表:第一元素结点前面增加一个附加结点的线性链表称为带头结点的线性链表;带头结点的线性链表图示headhead是头指是头指

4、针针ai-1aia2a1ai+1nan 头结点头结点 空指针空指针headhead结束第 9 页线性链表的每个结点中只有一个指针域故也称为单链表单链表ai-1aia2a1ai+1nanheadhead是头指针是头指针headhead注:从以往二级考试来看都是用没有附加头结点的链表,如图所示结束第 10 页结点变量图示structnodeintx;structnode*next;;node:结构体类型名;node类型结构变量有两个域:x:用于存放线性表的数据元素,next:用于存放元素直接后继结点的地址;该类型结构变量用于表示线性链表中的一个结点;h和head:指向结构体结点的指针变量,用于存放

5、node类型结构变量的地址;数据域数据域指针域指针域 x next node类型结构变量h h结构体结点指针变量h4线性链表的结点类型定义及指向结点的指针类型定义structnode*h;或structnode*head;结构体指针变量定义结构体类型定义结束第 11 页常用的引用格式常用的引用格式(一般格式一般格式):指针变量名指针变量名-结构体成员名结构体成员名如:如:h-x=10;h=h-next;注意:在引用过程中,数据类型还是成员的数据类型。h-x为成员x的数据类型(即整形)5怎样利用结构体指针变量来引用结构体成员structnode*h;不常用引用格式:(*指针变量名)指针变量名).

6、结构体成员名结构体成员名如:(*h).x=10;*h=(*h).next;结束第 12 页设head是指向链表第一个结点的指针变量,head用来保存线性链表中第一个结点的地址。ai-1aia2a1ai+1nanheadheadHead指向的链表二线性链表基本操作的算法假设线性表用不不带头结点的线性链表head的存储。下面讨论在这种存储方式下,线性表各种基本操作的算法。当线性表用线性链表存储时,对线性表各种基本操作实际上就是对存储在内存中的线性链表进行操作。结束第 13 页如何在线性链表head上实现线性表的基本操作?如何建空表?如何插入?删除?结束第 14 页1取元素操作(从链表中找到与输入的

7、值m相等的元素)功能:1、将线性链表中第i个元素赋值给e2、从链表中找到与输入的值m相等的元素,并将其指针返回取元素操作主要步骤:1)查找链表的第i个元素结点;2)将第i个元素结点中的数据元素赋值给e;(或将其指针返回;)取元素操作图示ai-1aia2a1ai+1nanheadheadp1p1p p注:p、p1为工作指针结束第 15 页2插入操作功能:在线性链表head的第i个元素结点之前插入一个新元素结点;插入操作图示:插入前插入后ai-1aia2a1ai+1nanheadheadai-1aia2a1ai+1naneheadhead结束第 16 页插入操作主要步骤:1)查找链表L的第i-1个

8、元素结点;2)为新元素建立结点;3)修改第i-1个元素结点的指针域和新元素结点指针域,从而完成插入;结束第 17 页3删除操作功能:在线性链表L中删除第i个元素,并且用e返回其值删除操作图示:删除前删除后ai-1aia2a1ai+1nanheadheadai-1aia2a1ai+1nanheadhead结束第 18 页删除操作主要步骤:1)查找链表的第i-1个元素结点;2)修改第i-1个元素结点指针域,使其指向第i+1个结点,从而删除第i个元素结点;3)将第i个元素结点中的数据元素赋值给e;4)回收被删除结点空间;用free(指针变量)函数释放删除结点的空间结束第 19 页4线性链表归并操作图

9、示131n542n6papb归并31n6papcpb524结束第 20 页以前考过的线性链表的题目以前考过的线性链表的题目lP10 13题(即题(即2000年秋的填空题中的年秋的填空题中的13题)题)此题是链表归并问题:此题是链表归并问题:首先要搞清楚每个指针的用途。如如pt指针变量就是用来指向建立的新结点;指针变量就是用来指向建立的新结点;pc为新链表的头结点;为新链表的头结点;pcr为工作结点,也是新链表的尾结点指针,即为工作结点,也是新链表的尾结点指针,即它始终指针新链表的最后一个结点。它始终指针新链表的最后一个结点。结束第 21 页P60 13题(即题(即2000年秋的填空题中的年秋的

10、填空题中的13题)题)PNODE *padd(PNODE *pa,PNODE*pb)PNODE*pcr,*pt,*pc;pc=NULL;while(23)if(pa-y=pb-y)pt=(24)malloc(sizeof(PNODE);pt-x=pa-x+pb-x;pt-y=pa-y;pt-next=NULL;if(pc=NULL)pc=pcr=pt;else pcr-next=pt;(25);pa=pa-next;pb=pb-next;else if(26)pb=pb-next;else pa=pa-next;Return pc;本空显然是控制结束的,只有当pa、pb两个链表中都没有元素时才

11、会结束分配的空间类型判断papb中当前元素y成员的值谁大将新增的结点连到工作指针pcr上结束第 22 页P10 13题(答案)题(答案)PNODE *padd(PNODE *pa,PNODE*pb)PNODE*pcr,*pt,*pc;pa&pbPNODE*pa-ypb-ypcr=pt结束第 23 页P21 14题(即题(即2001年春的填空题中的年春的填空题中的14题)题)PNODE *padd(PNODE *pa)PNODE*p1,*p2,*p;p1=p2=pa;while(p1)if(p1-x%2=0&(27)p=p1;p1=p1-next;(28)=p1;P-next=pa;(29)el

12、se p2=p1;Main()PNODE a10=1,2,3,4,5,6,7,8,9,10,*ha=a,*p;int i;for(i=0;i”,p-x);p=p-next;链表结尾的指针(NULL)如果p1指向的结点就是第一个结点,则不用移本行是从链表中删除结点将p指向的结点插到链表的头部没找着偶数值结点时,指针向后移,P2一直在P1的前一个结点结束第 24 页P21 14题(答案)题(答案)PNODE *padd(PNODE *pa)PNODE*p1,*p2,*p;NULLp1!=pap2-next=p1pa=p结束第 25 页P31 14题(即题(即2001年秋的填空题中的年秋的填空题中的

13、14题)题)Struct node *deladd(struct node *h,int value)struct node *p1,*p2;int flage=0;p1=p2=h;while(p1&flage=0)if(p1-x=value)flage=1;if(p1=h)h=(27);free(p1);else p2-next=(28);else p2=p1;p1=(29);If(flage=0)p1=(struct node*)malloc(sizeof(struct node);p1-x=value;p1-next=0;if(h=0)h=p1;else (30);链表结束或找到结点不执行循环Flage是一个标志变量用来标志是否找到结点如果找到符合每件的结点,就删除结点如果没找到适合每件的结点,则指针后移如果没找到

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1