用struct函数替换class函数
时间: 2023-11-12 16:04:20 浏览: 38
好的,这里是使用 `struct` 来实现的代码:
```c++
#include <iostream>
using namespace std;
struct Node {
int num;
string name;
Node *next;
Node(int num, string name) {
this->num = num;
this->name = name;
this->next = NULL;
}
};
Node *input() {
Node *head, *p, *q;
int i;
head = p = new Node(0, "");
cout << "请输入第1个学生的学号和姓名:";
cin >> p->num >> p->name;
for (i = 2; i <= 3; i++) {
q = new Node(0, "");
cout << "请输入第" << i << "个学生的学号和姓名:";
cin >> q->num >> q->name;
p->next = q;
p = q;
}
p->next = NULL;
return head;
}
void print(Node *head) {
Node *p = head;
int i = 1;
while (p != NULL) {
cout << "第" << i << "个学生的学号和姓名:" << p->num << " " << p->name << endl;
p = p->next;
i++;
}
}
int main() {
Node *head;
head = input();
print(head);
return 0;
}
```
这个程序的输出结果和之前使用 `class` 实现的程序是一样的。在这个程序中,我们使用 `struct` 来定义了一个结构体 `Node`,表示链表中的一个结点。我们在 `main()` 函数中调用了 `input()` 函数来创建具有三个结点的链表,并使用 `print()` 函数来输出链表中的所有结点。
需要注意的是,在使用 `struct` 时,我们需要使用 `struct Node` 或者 `Node` 来表示结构体类型,而在使用 `class` 时,我们直接使用 `class` 来表示类。另外,使用 `struct` 时,我们不需要使用 `new` 关键字来动态分配内存,可以直接使用 `Node node(0, "")` 的方式来创建结点。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)