
第10章结构
第10章 结构

目录,10.1结构的概念与操作>10.2 结构与指针10.3结构与数组10.4传递结构参数10.5返回结构10.6链表结构10.7创建与遍历链表10.8删除与插入链表结点>10.9结构实例:Josephus问题
10.1 结构的概念与操作 10.2 结构与指针 10.3 结构与数组 10.4 传递结构参数 10.5 返回结构 10.6 链表结构 10.7 创建与遍历链表 10.8 删除与插入链表结点 10.9 结构实例:Josephus问题

学习目标、理解结构原理以及操作、理解结构指针理解结构数组以及使用理解传递结构参数及返回结构值学会创建及遍历链表结构,理解链表数据结构的意义、学会册删除与插入链表结点
理解结构原理以及操作 理解结构指针 理解结构数组以及使用 理解传递结构参数及返回结构值 学会创建及遍历链表结构 理解链表数据结构的意义 学会删除与插入链表结点

10.1结构概述,C++使用数组存储相同类型的元素集合,但是,有些数据信息是由多个不同数据类型所组成的。例如:工资管理系统的工资单数据01工资单02工作部门:字符串,最大长度为10字符02姓名:字符串,最大长度为8个字符02职务(含职称、工种):代码,0~9902参加工作时间03年份:1900-205003月份:1~1203日:1~3102家庭情况03婚否:0一否,1一是03是否双职工:0一否,1一是03独生子女出生日期,如无独生子女则填1900.01.01
• C++使用数组存储相同类型的元素集合。 • 但是,有些数据信息是由多个不同数据类型 所组成的。 • 例如:工资管理系统的工资单数据

10.1结构概述04年份:1900-205004月份:1~1204日:1~3103入托子女数:0~1003住房面积:0~1000222基本工资:010000,保留两位小数岗位津贴:0~10000,保留两位小数保险:010000,保留两位小数独生子女费:0~10000,保留两位小数房租:0~10000,保留两位小数电费:0~10000,保留两位小数水费:010000,保留两位小数取暖费:0~10000,保留两位小数02实发工资:010000,保留两位小数

10.1结构概述分析:·简单数据类型无法表示这些复杂数据的内在联系:·各数据项的类型互不相同,工资单无法用一个数组存放;·若对各数据项分别建立数组,数据很难保持一致;·数据结构的复杂化带来了程序结构的复杂化:·程序难于设计,可读性降低,调试困难
分析: • 简单数据类型无法表示这些复杂数据的内在联系; • 各数据项的类型互不相同,工资单无法用一个数组 存放; • 若对各数据项分别建立数组,数据很难保持一致; • 数据结构的复杂化带来了程序结构的复杂化; • 程序难于设计,可读性降低,调试困难

10.1结构概述原因:·缺乏一种能够有效地表示复杂数据之间的内在联系的数据结构:解决方法:C++允许用户根据需要来构造数据类型,提供了结构体类型;枚举类型;共用体类型;类等自定义数据类型(User-DefinedType)
原因: • 缺乏一种能够有效地表示复杂数据之间的内在联 系的数据结构; 解决方法: • C++允许用户根据需要来构造数据类型,提供了 ✓ 结构体类型; ✓ 枚举类型; ✓ 共用体类型; ✓ 类 等自定义数据类型(User-Defined Type)

10.1结构概述结构是用户自定义的数据类型结构:由不同类型的数据组成的集合体:包含多种成员。结构的使用跟int、float等基本数据类型相同·声明结构类型时,需要使用关键字struct,然后,用一对大括号将结构成员数据类型说明括起来
• 结构是用户自定义的数据类型。 • 结构: ✓ 由不同类型的数据组成的集合体; ✓ 包含多种成员。 • 结构的使用跟int、float等基本数据类型相同。 • 声明结构类型时,需要使用关键字struct,然 后,用一对大括号将结构成员数据类型说明 括起来

10.1.2结构类型的定义,结构体类型的定义方法:struct数据类型成员名1;数据类型成员名n;
• 结构体类型的定义方法: struct { 数据类型 成员名1; . 数据类型 成员名n; } ;

10.1.2结构类型的定义,通常情况下,在所有函数之外声明结构类型,并且,结构声明位于main()函数之前。声明的结构类型,在程序的任何地方都可以使用。声明一个结构并不分配内存·在定义这个新数据类型变量时,才给其分配内存
• 通常情况下,在所有函数之外声明结构类型。 • 并且,结构声明位于main( )函数之前。 • 声明的结构类型,在程序的任何地方都可以 使用。 • 声明一个结构并不分配内存。 • 在定义这个新数据类型变量时,才给其分配 内存