用C++语言建立具有三个结点的链表并输出链表。结点数据为学号、姓名。其中main函数代码如下: int main() { st *head; head=input(); print (head); return 0; }
时间: 2024-02-03 13:04:16 浏览: 70
好的,我来回答你的问题。首先,我们需要定义一个结构体来表示链表中的每个节点,包括学号和姓名两个数据成员:
```c++
struct student {
int id; // 学号
string name; // 姓名
student *next; // 指向下一个节点的指针
};
```
接着,我们需要编写 `input()` 函数来创建链表并返回头节点的指针。这个函数的主要作用是让用户输入三个学生的学号和姓名,并将它们插入到链表中。代码如下:
```c++
student* input() {
student *head = nullptr, *tail = nullptr;
for (int i = 0; i < 3; i++) {
int id;
string name;
cout << "请输入第 " << i+1 << " 个学生的学号和姓名:";
cin >> id >> name;
student *node = new student;
node->id = id;
node->name = name;
node->next = nullptr;
if (head == nullptr) {
head = node;
tail = node;
} else {
tail->next = node;
tail = node;
}
}
return head;
}
```
最后,我们编写 `print()` 函数来输出链表的内容。这个函数的作用是遍历整个链表,依次输出每个节点的学号和姓名。代码如下:
```c++
void print(student *head) {
cout << "学号\t姓名" << endl;
cout << "===============" << endl;
student *p = head;
while (p != nullptr) {
cout << p->id << "\t" << p->name << endl;
p = p->next;
}
}
```
最后,我们将这些函数组合起来,在 `main()` 函数中调用它们来创建链表并输出它的内容:
```c++
int main() {
student *head;
head = input();
print(head);
return 0;
}
```
这样就完成了建立具有三个结点的链表并输出链表的任务。
阅读全文