C++自定义数据类型:结构体实现链表输出
需积分: 29 189 浏览量
更新于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 上传
点击了解资源详情
2009-05-09 上传
2019-03-28 上传
2013-11-30 上传
2012-10-20 上传
2007-08-14 上传
双联装三吋炮的娇喘
- 粉丝: 19
- 资源: 2万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析