C++自定义数据类型:结构体实现链表输出
需积分: 29 199 浏览量
更新于2024-07-13
收藏 486KB PPT 举报
在C++中,自定义数据类型是通过创建结构体(struct)来实现的,结构体允许我们将不同类型的数据组合在一起形成一个全新的数据类型。例如,我们来看一个名为`STU`的结构体,它可能代表学生信息,包含`num`(整型)、`score`(浮点型)以及可能还有其他成员如姓名、性别和地址等。定义结构体的语法如下:
```cpp
struct STU {
int num;
float score;
// 其他成员...
};
```
函数`print(STU *head)`用于遍历并输出链表中的`STU`结构体数据。这里的链表是由`STU`结构体类型的节点构成的,每个节点通过`next`指针相连。遍历过程中,当前节点`p`首先指向头结点`head`,然后在`while`循环中,依次输出`num`和`score`,直到`p`变为`NULL`,表示链表结束。
```cpp
void print(STU *head) {
STU *p;
p = head;
while (p != NULL) {
cout << p->num << '\t' << p->score << '\n';
p = p->next;
}
}
```
在给出的链表中,我们可以看到节点的编号和数据,如`2000H`、`3000H`等,这些可能是内存地址或者特定的标识符。当调用`print`函数时,输出的格式是这样的:
```
A 3000H
B 3050H
C 6000H
D 2090H
B '\0'
```
这里`'\0'`通常表示字符串的结束标志。结构体变量`student1`、`student2`的定义方式有三种:
1. 先定义结构体类型再定义变量:
```cpp
struct Student {
int num;
char name[20];
char sex;
// ...
};
Student student1, student2;
```
2. 在定义类型的同时定义变量:
```cpp
struct Student {
int num;
char name[20];
char sex;
// ...
} student1, student2;
```
3. 直接定义结构体类型变量,不显示结构体名称:
```cpp
struct {
int num;
char name[20];
char sex;
// ...
} student1, student2;
```
结构体变量在内存中是按照成员的顺序存储的,且只在声明变量时分配内存,结构体类型本身不占用额外的空间。对于结构体中的成员,可以直接通过`.`运算符访问和赋值,它们的行为就像独立的变量一样。此外,结构体的成员还可以是其他结构体类型,如包含日期信息的`struct Date`。
总结来说,这段代码展示了如何在C++中使用自定义数据类型`STU`创建链表,并通过函数操作和显示这些数据。同时,它也演示了结构体的定义、变量的声明和内存管理规则。
2022-11-02 上传
2022-11-02 上传
2009-07-27 上传
c++ 构建一个其中元素数据类型为float的链表。 使用头插法分别插入数据3.14, 5.26, 7.89。 使用尾插法分别插入数据4.67, 5.2, 7.9, 5.5。 遍历并输出该顺序表的每一
2024-09-25 上传
2023-04-30 上传
2023-03-27 上传
2023-05-19 上传
2023-06-01 上传
2023-05-28 上传
双联装三吋炮的娇喘
- 粉丝: 16
- 资源: 2万+
最新资源
- 新型智能电加热器:触摸感应与自动温控技术
- 社区物流信息管理系统的毕业设计实现
- VB门诊管理系统设计与实现(附论文与源代码)
- 剪叉式高空作业平台稳定性研究与创新设计
- DAMA CDGA考试必备:真题模拟及章节重点解析
- TaskExplorer:全新升级的系统监控与任务管理工具
- 新型碎纸机进纸间隙调整技术解析
- 有腿移动机器人动作教学与技术存储介质的研究
- 基于遗传算法优化的RBF神经网络分析工具
- Visual Basic入门教程完整版PDF下载
- 海洋岸滩保洁与垃圾清运服务招标文件公示
- 触摸屏测量仪器与粘度测定方法
- PSO多目标优化问题求解代码详解
- 有机硅组合物及差异剥离纸或膜技术分析
- Win10快速关机技巧:去除关机阻止功能
- 创新打印机设计:速释打印头与压纸辊安装拆卸便捷性