计算机二级C语言程序设计第13讲链表课件.ppt

计算机二级C语言程序设计第13讲链表课件.ppt

ID:57176713

大小:265.50 KB

页数:18页

时间:2020-08-02

计算机二级C语言程序设计第13讲链表课件.ppt_第1页
计算机二级C语言程序设计第13讲链表课件.ppt_第2页
计算机二级C语言程序设计第13讲链表课件.ppt_第3页
计算机二级C语言程序设计第13讲链表课件.ppt_第4页
计算机二级C语言程序设计第13讲链表课件.ppt_第5页
资源描述:

《计算机二级C语言程序设计第13讲链表课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第13讲链表链表概述(1)所谓链表是指若干个数据项(每个数据项称为一个“结点”)按一定的原则连接起来。每个数据项都包含有若干个数据和一个指向下一个数据项的指针,依靠这些指针将所有的数据项连接成一个链表。链表概述(2)a1a2a3...an^headstructstudentdatanextaistructstudent{longnum;floatscore;sturctstudent*next};structstudent*head;1620head李为2004101850586数据项A数据项C刘娜2004102933818数据项B张三200412595016200586

2、3818一个简单链表示例:内存动态管理函数动态分配存储根据需要开辟或释放存储单元相关函数malloc函数calloc函数free函数说明应包含stdlib.hmalloc函数函数原型typedefunsignedsize_t;void*malloc(size_tsize);参数size:分配存储空间的字节数返回值若成功,返回指向分配区域起始地址的指针若失败,返回NULLcalloc函数函数原型void*calloc(size_tn,size_tsize);参数n:分配内存的项目数size:分配内存的每个项目的字节数返回值若成功,返回指向分配区域起始地址的指针若失败,返回N

3、ULLfree函数函数原型voidfree(void*ptr);参数ptr:要释放的内存区地址说明释放prt指向的内存区释放后的内存区能够分配给其他变量使用链表的基本操作链表的建立从链尾到链头:新结点插入到链头从链头到链尾:新结点插入到链尾链表的插入操作根据一定的条件,把新结点插入到指定位置链表的删除操作根据一定的条件,删除一个或多个结点链表的输出操作链表的查找操作建立链表操作(从链尾到链头)headai-1...④head=p;②p=malloc(sizeof(structnode));p->data=a[i];①for(i=0;inext

4、=head;建立链表操作(从链头到链尾)ai-1^...④p->next=q;②q=malloc(sizeof(structnode));q->data=a[i];①for(i=0;inext=NULL;p⑤p=q;链表的插入操作...aiai+1...④p->next=q;②q=malloc(sizeof(structnode));q->data=x;p①if(p满足插入条件)qx③q->next=p->next;链表的删除操作...ai-1aiai+1...③p->next=q->next;④free(q);②q=p->next;pq

5、①if(p->next满足删除条件)链表的输出操作...ai-1aiai+1...③p=p->next;p①while(p)②printf("%d",p->data);链表的查找操作...ai-1aiai+1...②p2=p1;p1=p1->nxet;p1①while(x!=p1->num&&p1!=NULL)③printf(″find:%ld%5.2f″,x,p1->num);p22007-91、函数main()的功能是:在带头结点的单链表中查找数据域中值最小的结点.请填空#includestruct node{int data;struct no

6、de *next;};int min(structnode *first)/*指针first为链表头指针*/{ strctnode *p; int m;p=first->next; m=p->data;p=p->next;for(;p!=NULL;p=_[20]_______)if(p->datadata;return m;}p->next2008-91、假定已建立以下链表结构,且指针p和q已指向如图所示的结点:则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是A)(*p).next=(*q).next; free(p);    B)p=q->n

7、ext; free(q);C)p=q; free(q);D)p->next=q->next; free(q);2009-31、以下程序把三个NODETYPE型的变量链接成一个简单的链表,并在while循环中输出链表结点数据域中的数据,请填空。#includestructnode{intdata;structnode*next;};typedefstructnodeNODETYPE;main(){NODETYPEa,b,c,*h,*p;a.data=10;b.data=20;c.data=30;h=&a;a.n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。