教学课件 《C语言程序设计》(中职 ).ppt

  1. 1、本文档共322页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
了解结构体指针、用指针处理链表 为避免浪费空间,C语言提供一种动态的数据结构。它没有固定大小,根据需要随时开辟存储单元,用完后随时释放。线性链表就是动态地进行存储分配的一种数据结构。 任务二 了解结构体指针、用指针处理链表 1. 了解C语言的结构体指针的定义与使用。 2. 学会用指针处理简单的链表。 任务描述 任务目标 指针,也称指针变量,用于存放变量的起始地址的变量。结构体指针,用于存放结构体变量的起始地址的变量,即指向结构体变量的指针。指针变量的基类型必须与结构体变量的类型相同,定义结构体指针的一般形式如下: struct 结构体名 *结构指针名 如: structman { char nam[8]; char sex; int age; float score; }; structman *f; //f可以指向struct man类型的数据 知识储备 一、使用结构体指针变量 1 任务二 了解结构体指针、用指针处理链表 使指针指向结构体变量的一般形式: 如: struct man p; struct man *f; f=p; //f可以指向结构体变量p 当结构体指针变量指向某结构体变量,通过该结构体指针变量可以引用结构体变量的成员,其一般形式: 一、使用结构体指针变量 任务二 了解结构体指针、用指针处理链表 链表是动态地进行存储分配的一种数据结构。链表有一个“头指针”变量,图中以head表示,它存放一个地址,该地址指向链表中的第一个元素。链表中的每一个元素称为“结点”,头指针的类型与所指向的结点类型相同。每个结点包括两个部分: 数据和下一个结点的地址。链表中的最后一个元素称为“表尾”,它的指针变量中存放“NULL”(即空地址,值为0),链表到此结束。 二、使用指针处理链表 任务二 了解结构体指针、用指针处理链表 显然,链表这种数据结构必须利用结构体变量和指针变量才能实现。结构体变量为链表中的结点,它有两种成员,第一种是数据,第二种是指向下一个结点的指针变量。如: 二、使用指针处理链表 struct student { int num; float score; struct student *next; }stu; 结构体变量stu是链表中的一个结点,stu.num、stu.score是结点的实际数据,stu.next是下一个结点的地址。 任务二 了解结构体指针、用指针处理链表 1. 建立单向静态链表 静态链表中的结点不是临时开辟的,用完后也不能释放。其建立过程为: (1)定义结点类型,其一般形式: (2)定义结点: (3)定义头指针: (4)使头指针指向第一个结点: (5)使结点的指针指向下一结点: (6) 建立链表尾。 二、使用指针处理链表 任务二 了解结构体指针、用指针处理链表 #include stdio.h main() { struct student { int num; float score; struct student *next; }a,b,c;//定义结点 struct student *head,*f;//定义头指针head和用于访问结点的指针f a.num=10101;b.num=10113;c.num=10115; a.score=88.5;b.score=100;c.score=87; //对结点各成员赋值 head=a;a.next=b;b.next=c;c.next=NULL; //建立链表 f=head; while(f!=NULL) //循环输出链表中结点的值 { printf(%d,%.1f\n,f-num,f-score); f=f-next; //获取下一结点的地址 } } 如:静态建立如下链表 任务二 了解结构体指针、用指针处理链表 2. 建立单向动态链表 所谓动态链表是指在程序执行过程中从无到有地建立起一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相连的关系。 建立过程如下: (1)定义结点类型。 (2)定义头指针。 (3)开辟第一个结点单元,并使头指针指向它: (4)循环开辟新结点空间,并将新结点地址存入前一结点的指针成员。 二、使用指针处理链表 任务二 了解结构体指针、用指针处理链表 (1)静态建立下图所示的链表,它由4个数据结点组成。循环输出各结点中的数据。 想一想 ① 头指针head起什么作用? ② 静态建立单向链表的步骤是什么? 实训操作 2 任务二 了解结构体指针、用指针处理链表 (2)动态建立下图所示的链表,它由4个数据结点组成

文档评论(0)

pehalf + 关注
实名认证
内容提供者

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

版权声明书
用户编号:7201060146000004

1亿VIP精品文档

相关文档