已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
链表,内容要点,链表的概念链表的创建链表的遍历,3,链表的概念,一种按需动态分配内存进行存储的数据结构若干个同一结构类型的“结点”依次串接而成单向链表(即只能从头开始访问其它结点)、双向链表,4,链表的概念存储结构,线性表顺序存储结构特点:占用连续的内存空间链式存储结构特点:一般占用不连续的内存空间,直观地画成,1,2,3,4,5,顺序号,5,链表的概念数据类型,链表的图示链表组成一个链表由若干个结点组成结点组成数据(程序中要使用的数据)地址(下一个结点的地址)结点数据的存储数据类型,6,链表的概念数据类型,结构体,structlistintdata;structlist*next;,typedefstructlistintdata;structlist*next;LIST;,或者,数据域,指针域,返回,7,链表的创建,链表是一种动态地进行存储分配的数据结构,即根据需要动态地创建若干结点,并将其连成一个链。创建一个结点的步骤?1)开辟一个结点的内存空间2)给结点的数据域赋值3)给结点的指针域赋值如何开辟结点的内存空间?求字节数运算符强制类型转换运算符,8,求字节数运算符,sizeof(类型名)例如:intx,y;x=sizeof(int)计算一个int数据在内存占用的字节数y=sizeof(double)计算一个double数据在内存占用的字节数sizeof(变量名)例如:intdata=4;intlen;len=sizeof(data);计算int型变量data在内存占用的字节数,9,强制类型转换运算符,(类型名)分析以下程序的输出结果,#includevoidmain()floatx;x=(float)(5/2);printf(“%fn”,x);x=(float)5/2printf(“%fn”,x),输出结果:2.0000002.500000,10,开辟内存空间,void*malloc(unsignedintsize)函数返回值void*:返回值为开辟空间的首地址函数的形参开辟空间的大小(即空间的字节数),11,创建链表中的一个结点,符号常量NULL代表0,表示“空地址”例如:int*p1=NULL;int*p2=0;p1和p2指针,不指向任何对象用于标识链表中的尾结点,即尾结点的指针域值为NULL,#includetypedefstructlistintdata;structlist*next;LIST;voidmain()LIST*p,*head;head=(LIST*)malloc(sizeof(LIST);p=(LIST*)malloc(sizeof(LIST);p-data=30;p-next=NULL;head-next=p;,12,创建一个链表,创建链表的基本步骤定义结点数据类型定义指针变量创建结点数据域赋值指针域赋值,#includetypedefstructlistintdata;structlist*next;LIST;voidmain()LIST*p1,*p2,*p3,*head;head=(LIST*)malloc(sizeof(LIST);p1=(LIST*)malloc(sizeof(LIST);p1-data=34;head-next=p1;p2=(LIST*)malloc(sizeof(LIST);p2-data=10;p2next=p1;p3=(LIST*)malloc(sizeof(LIST);p3-data=56;p3-next=NULL;,从头到尾依次创建链表的各个结点,注意:尾结点的地址值为NULL或0,13,自定义函数实现创建链表,#include#defineN5typedefstructlistchardata;structlist*next;SLIST;SLIST*creatlist(char*a)SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST);for(i=0;idata=ai;p-next=q;p=q;p-next=NULL;returnh;main()SLIST*head;charaN=a,b,c,d,e;head=creatlist(a);,head,h,a,q,p,b,q,p,p,c,q,p,创建过程的演示图,d,q,p,q,p,e,NULL,返回,14,链表的遍历,head指向链表的头结点定义一个指针变量pp=head-next;循环(注意条件)while(p!=NULL)printf(“%c”,p-data);p=p-next;,移动指针,15,自定义函数实现创建链表,并输出,#include#defineN5typedefstructlistchardata;structlist*next;SLIST;SLIST*creatlist(char*a)SLIST*h,*p,*q;inti;h=p=(SLIST*)malloc(sizeof(SLIST);for(i=0;idata=ai;p-next=q;p=q;p-next=NULL;returnh;,voidoutlist(SLIST*h)SLIST*p;p=h-next;while(p!=NULL)printf(%5c,p-data);p=p-next;main()SLIST*head;charaN=a,b,c,d,e;head=creatlist(a);outlist(head);,16,内容总结,结点的数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共艺术课程课件
- 非遗文化传承研学基地打造实施方案
- 2026肉牛养殖市场季节性特征解析及库存管理优化与对冲工具应用报告
- 2026年面包行业技术革新与市场前景分析报告
- 湖南省株洲市醴陵四中2027届高三物理第一学期期中质量跟踪监视试题含解析
- 2027届伊春市重点中学物理高二第一学期期中监测试题含解析
- 2026饮料包装视觉设计对年轻消费者吸引力研究报告
- 浙江省富阳二中2027届物理高二第一学期期末学业质量监测试题含解析
- 2025年河北省南宫市小学一年级上册道德与法治期末考试试卷附答案详解
- 初中七年级综合实践活动教学设计 真心暖意敬老情志愿者活动单元整体实施策略研究
- 2026年安全生产法律法规汇编学习
- 2026年安庆岳西县公开选聘县属国有企业领导人员4名笔试备考题库及答案详解
- 2026年陕西日报社及陕西日报传媒集团招聘(46人)笔试参考题库及答案详解
- 【1252】支气管哮喘教学查房
- 工程结算审核实施方案
- 压缩空气储能地下工程验收规范
- 2026年鼠疫防治知识测试题及答案
- 2026年高考数学全国Ⅱ卷真题解读及复习备考策略(课件)
- 2026年高考数学全国二卷真题深入解读课件
- 2025年高校行政岗成果转化笔试题(附答案)
- 2026中国精神卫生服务体系建设现状及资源缺口调研报告
评论
0/150
提交评论