请编写如下c++程序:建立具有三个结点的链表并输出链表。结点数据为学号、姓名。其中main函数代码如下: int main() { st *head; head=input(); print (head); return 0; }
时间: 2024-05-10 21:19:38 浏览: 95
以下是一个简单的实现,其中使用了结构体st来表示链表的每个节点。
```c++
#include <iostream>
#include <string>
using namespace std;
struct st {
int id;
string name;
st *next;
};
// 输入函数,返回头节点指针
st* input() {
st *head = nullptr;
st *p = nullptr;
for (int i = 0; i < 3; i++) {
st *node = new st;
cout << "请输入第" << i+1 << "个学生的学号和姓名:";
cin >> node->id >> node->name;
node->next = nullptr;
if (head == nullptr) {
head = node;
p = node;
} else {
p->next = node;
p = node;
}
}
return head;
}
// 输出函数
void print(st *head) {
st *p = head;
while (p != nullptr) {
cout << "学号:" << p->id << ",姓名:" << p->name << endl;
p = p->next;
}
}
int main() {
st *head;
head = input();
print(head);
return 0;
}
```
该程序的输出结果为:
```
请输入第1个学生的学号和姓名:10001 John
请输入第2个学生的学号和姓名:10002 Mary
请输入第3个学生的学号和姓名:10003 Tom
学号:10001,姓名:John
学号:10002,姓名:Mary
学号:10003,姓名:Tom
```
阅读全文