第10章 造数据类型.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 构造数据类型 本章要点 理解结构体的含义、定义与使用方法 理解typedef的作用与使用方法 掌握链表操作的基本方法 本章难点 有关链表的操作 用结构体变量和指向结构体的指针作函数参数 结构是用户自定义类型 由自定义的结构类型定义的变量为结构变量,系统为其分配空间 方法二:在定义类型的同时定义变量 方法三:当类型和变量同时定义,把所有的变量全部定义完,此时结构名可不写 练习:某产品定义结构类型,其有4个成员: 产品代号:不超过5个字符的字符串 产品名称:不超过20个字符的字符串 单价:单精度实数 数量:整型数 并定义其类型的两个结构变量p1,p2。 struct st { int num; char name[20]; int score; } stu[3]={ {10,”Zhang”,80 }, {11,”Li”,70} , {12,”Wang”,90} }; 一、指向结构的指针 小结:引用结构体成员的三种形式: 结构体变量名.成员名 (*p).成员名 p -成员名 二、指向结构数组的指针 三、结构成员是指针 关于动态分配和动态释放空间的函数 以下系统函数已在 stdlib.h 头文件中定义 例2:键盘输入若干个学生的信息并输出到屏幕 在一个结构类型中,可以包含另一个已定义的结构类型的成员。 一、函数的形参是基本类型的变量,实参可以是 结构变量中的同类型成员 二、函数的形参或返回值是结构类型的数据 上机题: 一、问题的提出 二、C语言的技术支持 三、链表 上机题: n个,,,,生的数据存放在计算机中,采用数组有 两个特点: (1)内存是连续的,可用下标标识数组元素 (2)元素在数组中连续存放的 10.8 链表 产生问题: (1)数组体积固定(浪费或不足) (2)数组中插入或删除一个元素不方便 现设想: 如有三个,,,,生变量:x, y, z 1000 数据 2000 1000 x 数据 3000 2000 y 数据 ∧ 3000 z p 空指针NULL 叶限场已沦鼓鄙矮腺榷裕江钾喉川赃芋哪佛喧舒俐违犯寞泳纤憋愚狙挺滥第10章 构造数据类型第10章 构造数据类型 ——结构成员中可有指向自己(类型)的指针 10.8 链表 ,,,,生结构类型: struct node { int num; char name[20]; int score; struct node *next; /*指向下一个,,,,生的指针变量*/ }; 数据 指针(地址) 俗炉暂怔线潜壤靖傀贱焚邮裔靡媒纲饯汲钎今给奴茵拐猾电吞阀耍级肚峦第10章 构造数据类型第10章 构造数据类型 1、链表表中的概念 结点: 特殊:首结点、尾结点 头指针:存放第一个结点的地址的指针变量,命名为head… 尾指针:存放最后一个结点的地址的指针变量,命名为rear… 数据域: 存放实际所需数据 指针域: 指向下一个结点的指针变量(尾结点为NULL) 空链表: head=NULL; 尾指针 数据 数据 数据 ∧ rear head 数据 头指针 首结点 数据域 指针域 尾结点 空指针 head ∧ 慢艺隘柿仕透碴啤脉鼓匪因曳脑酮遂娄婶总女陵臣往蚌陆细珐虎谍剃涩钦第10章 构造数据类型第10章 构造数据类型 1、如何建一个链表 (1)先建一个只有三位,,,,生的链表,如下: x head 80 10 85 11 70 ∧ 12 y z 结点类型定义: struct node { int num; /*,,,,号*/ int score; /*成绩*/ struct node *next; /*指向下一个结点的指针变量*/ }; 矽息掂瓣京掌菊钓冠呈忌让诬巍骤镁酚烹谍侮弧萤吊手译牛悲箍既合轧汹第10章 构造数据类型第10章 构造数据类型 定义三个,,,,生变量: struct node x,y,z; 定义头指针: struct node *head; 实现,,,,生信息存储: x.num=10; x.score=80; y.num=11; y.score=85; z.num=12; z.score=70; 结点间建立连接: head=x; x.next=y; y.next=z; z.next=NULL; 思考:如何实现 x,y,z倒过来链接? stru

文档评论(0)

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

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

1亿VIP精品文档

相关文档