第3章 线性表(2)计科系:王丹丹知识回顾定义和使用结构体变量使用结构体数组结构体指针9.1 定义和使用结构体变量问题定义:有时需要将不同类型的数据组合成一个有机的整体,以便引用。例如:一个学生有学号/姓名/年龄/地址等属性。numnamesexagescoreaddr10010XiaomingM1887.5Beijingint num;char name[20];int age;char addr[20];组合数据难以反映它们之间的关系9.1.1 自己建立结构体类型声明一个结构体类型的一般形式: struct 结构体名 {成员表列};例如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;输出所有元素的信息。9.2 使用结构体数组定义结构体数组一般形式 ① struct 结构体名 {成员表列} 数组名[数组长度]; ②先声明一个结构体类型,然后再用此类型定义结构体数组: 结构体类型 数组名[数组长度]; 如: struct Person leader[3]; 对结构体数组初始化的形式是在定义数组后面加上={初值表列}; struct Person leader[3]={“LI”,0,”ZHANG”,0,”SUN”,0};9.3 结构体指针指向结构体变量的指针既可以指向结构体变量也可以指向结构体数组中的元素注意:指针变量的基类型必须与结构体变量的类型相同。例如:struct Student *pt;9.3.1 指向结构体变量的指针P10101LILYM89.5例4:通过指向结构体变量的指针变量输出结构体变量中成员的信息。解题思路:在已有的基础上,本题要解决两个问题怎样对结构体变量成员赋值;怎样通过指向结构体变量的指针访问结构体变量中成员。9.3.2 指向结构体数组的指针例5:有3个学生的信息,放在结构体数组中,要求输出全部学生的信息。解题思路:用指向结构体变量的指针处理声明struct Student,并定义结构体数组、初始化定义指向struct Student类型指针p使p指向数组首元素,输出元素中各信息使p指向下一个元素,输出元素中各信息再使p指向结构体数组的下一个元素,输出它指向的元素中的有关信息P10101LILYM18stu[0]10102LUCYM19stu[1]10103LI LEI F20stu[2]本章主要内容线性表的定义和基本操作线性表的顺序存储结构线性表的链式存储结构线性表的应用举例知识回顾线性表顺序存储结构的优缺点 插入和删除操作需要移动大量元素; 当线性表长度变化较大时,难以确定存储空间的容量; 造成存储空间的“碎片”。 无须为表示表中元素之间的逻辑关系而增加额外的存储空间。 可以快速地存取表中任一位置的元素。缺点优点3.6.1 顺序存储结构不足的解决办法根据实际需求动态地申请空间,并通过一定方法将申请的多个空间联系起来。即:逻辑上相邻未必在物理上相邻。3.6.2 线性表链式存储结构定义线性表的链式存储结构的特点: 用一组任意的存储单元存储线性表的数据元素;需要存储数据元素的后继元素的存储地址;用指针实现不相邻的存储单元存放逻辑上相邻的元素。链表的定义:采用链式存储结构的线性表。例:最简单的一种链表的结构ead102112491249ABCD135614751021NULL“头指针”变量以head表示,它存放一个地址,该地址指向一
您可能关注的文档
最近下载
- 年产2万吨碳酸锂项目(吸附剂车间竣工环保验收监测调查报告.docx VIP
- 2025年高考湖南卷物理真题试卷.pdf VIP
- 生物安全培训.doc VIP
- 圣兴化工年产1万吨硝酸镁、2万吨水溶肥、1万吨硝酸钙、2万吨太阳能熔盐、5万吨农业(工业)硝酸钾及5.4万吨氯化镁溶液项目环评.doc VIP
- DB37T 4983—2025 无人机半航空瞬变电磁探测技术规程.pdf
- 2026春沪教版七年级英语下册单词衡水体字帖.pdf VIP
- 25HNTJ026 锯齿形装配式混凝土剪力墙结构施工图制图规则及构造详图 T_HNKCSJ 025-2025.docx VIP
- 25HNTJ025 刚节点装配式混凝土框架结构施工图制图规则及构造详图 T_HNKCSJ 024-2025.docx VIP
- 25HNTJ025 低能耗集成装配式多层房屋构造 T_HNKCSJ 023-2025.docx VIP
- 催眠引导语合集元式催眠.docx VIP
原创力文档

文档评论(0)