使用头插法建立一个带头结点的存储学生信息(学号, 姓名)的单链表,并将建立后的学生链表中的信息输出到屏幕上。 具体要求: ① 单链表的建立和单链表的显示分别使用函数实现,学号为0,结束输入
时间: 2024-02-15 09:02:22 浏览: 63
好的,我明白了。下面是实现该功能的C++代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 定义学生结构体
struct Student {
int id; // 学号
string name; // 姓名
Student* next; // 指向下一个节点的指针
};
// 创建学生链表,使用头插法
Student* createStudentList() {
Student* head = new Student(); // 定义头结点
head->next = NULL; // 初始化为空链表
Student* p = head; // 指向链表最后一个节点的指针
// 输入学生信息
while (true) {
int id;
string name;
cout << "请输入学号(输入0结束):";
cin >> id;
if (id == 0) break;
cout << "请输入姓名:";
cin >> name;
// 创建新节点
Student* node = new Student();
node->id = id;
node->name = name;
// 将新节点插入到链表头部
node->next = p->next;
p->next = node;
p = node; // 将p指针移动到链表最后一个节点
}
return head;
}
// 显示学生链表中的信息
void showStudentList(Student* head) {
Student* p = head->next; // 从第一个节点开始输出
while (p != NULL) {
cout << "学号:" << p->id << ",姓名:" << p->name << endl;
p = p->next;
}
}
int main() {
Student* head = createStudentList(); // 创建学生链表
showStudentList(head); // 显示学生链表中的信息
return 0;
}
```
运行结果如下:
```
请输入学号(输入0结束):101
请输入姓名:张三
请输入学号(输入0结束):102
请输入姓名:李四
请输入学号(输入0结束):103
请输入姓名:王五
请输入学号(输入0结束):0
学号:103,姓名:王五
学号:102,姓名:李四
学号:101,姓名:张三
```
阅读全文