《数据结构》--线性表的链式存储结构v1.1讲述.pptxVIP

《数据结构》--线性表的链式存储结构v1.1讲述.pptx

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计科系:王丹丹 第3章 线性表(2) 知识回顾 定义和使用结构体变量 使用结构体数组 结构体指针 9.1 定义和使用结构体变量 问题定义:有时需要将不同类型的数据组合成一个有机的整体,以便引用。 例如:一个学生有学号/姓名/年龄/地址等属性。 int num; char name[20]; int age; char addr[20]; 组合 数据 难以反映它们之间的关系 num name sex age score addr 10010 Xiaoming M 18 87.5 Beijing 声明一个结构体类型的一般形式: struct 结构体名 {成员表列}; 例如 9.1.1 自己建立结构体类型 9.1.2 定义结构体类型变量的方法 先声明结构体类型,再定义该类型的变量 在声明类型的同时定义变量 不指定类型名而直接定义结构体类型变量 9.1.3 结构体变量的初始化和引用 例1:把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这个学生的信息。 解题思路: 自己建立一个结构体类型,包括有关学生信息的各成员; 用它定义结构体变量,同时赋以初值; 输出该结构体变量的各成员。 9.1.3 结构体变量的初始化和引用 例2:输入两个学生的学号、姓名和成绩,输出成绩较高的学生的学号、姓名和成绩。 解题思路: 定义两个结构相同的结构体变量student1和student2; 分别输入两个学生的学号、姓名和成绩; 比较两个学生的成绩,如果学生1的成绩高于学生2,就输出学生1的全部信息,如果学生2的成绩高于学生1,就输出学生2的全部信息。如果二者相等,输出2个学生的全部信息。 9.2 使用结构体数组 思考:一个结构体变量可以存放一组有关联的数据,如果有10个学生的数据需要参加运算? 结构体数组 例3:有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。 解题思路: 设一个结构体数组,数组中包含3个元素,每个元素中的信息应包括候选人的姓名(字符型)和得票数(整型); 输入被选人的姓名,然后与数组元素中的“姓名”成员比较,如果相同,就给这个元素中的“得票数”成员的值加1; 输出所有元素的信息。 定义结构体数组一般形式 ① struct 结构体名 {成员表列} 数组名[数组长度]; ②先声明一个结构体类型,然后再用此类型定义结构体数组: 结构体类型 数组名[数组长度]; 如: struct Person leader[3]; 对结构体数组初始化的形式是在定义数组后面加上 ={初值表列}; 9.2 使用结构体数组 struct Person leader[3]={“LI”,0,”ZHANG”,0,”SUN”,0}; 9.3 结构体指针 指向结构体变量的指针 既可以指向结构体变量 也可以指向结构体数组中的元素 注意:指针变量的基类型必须与结构体变量的类型相同。 例如:struct Student *pt; 9.3.1 指向结构体变量的指针 例4:通过指向结构体变量的指针变量输出结构体变量中成员的信息。 解题思路:在已有的基础上,本题要解决两个问题 怎样对结构体变量成员赋值; 怎样通过指向结构体变量的指针访问结构体变量中成员。 10101 LILY M 89.5 P 9.3.2 指向结构体数组的指针 例5:有3个学生的信息,放在结构体数组中,要求输出全部学生的信息。 解题思路:用指向结构体变量的指针处理 声明struct Student,并定义结构体数组、初始化 定义指向struct Student类型指针p 使p指向数组首元素,输出元素中各信息 使p指向下一个元素,输出元素中各信息 再使p指向结构体数组的下一个元素,输出它指向的元素中的有关信息 10101 LILY M 18 10102 LUCY M 19 10103 LI LEI F 20 P stu[0] stu[1] stu[2] 本章主要内容 线性表的定义和基本操作 线性表的顺序存储结构 线性表的链式存储结构 线性表的应用举例 知识回顾 线性表顺序存储结构的优缺点 无须为表示表中元素之间的逻辑关系而增加额外的存储空间。 可以快速地存取表中任一位置的元素。 优点 插入和删除操作需要移动大量元素; 当线性表长度变化较大时,难以确定存储空间的容量; 造成存储空间的“碎片”。 缺点 根据实际需求动态地申请空间,并通过一定方法将申请的多个空间联系起来。即:逻辑上相邻未必在物理上相邻。 3.6.1 顺序存储结构不足的解决办法 3.6.2 线性表链式存储结

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档