复制
收藏
提问
简洁
用c++程序语言帮我编程:编写一个学生链表 Studeneust,学生的信息为:sturct student {int StudentID;char name [20]; int sex;long phoneNum;char family address[100];}在链首和链尾各插入一个学生,学号分别为0和6,并查看所有学生的信息。
3月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
根据您提供的信息12345678,我们可以编写一个C++程序来实现学生信息的链表管理。以下是一个简单的示例代码,实现了学生信息的链表结构定义、在链首和链尾插入学生信息以及遍历链表查看所有学生信息的功能。
首先,定义学生信息的结构体student
:
struct student {
int StudentID;
char name[20];
int sex;
long phoneNum;
char familyAddress[100];
student* next; // 指向下一个节点的指针
};
接着,实现链表的基本操作,包括创建新节点、在链首插入节点、在链尾插入节点以及遍历链表显示学生信息的函数:
#include <iostream>
#include <cstring>
using namespace std;
// 创建新的学生节点
student* createStudent(int id, const char* name, int sex, long phoneNum, const char* address) {
student* newStudent = new student;
newStudent->StudentID = id;
strcpy(newStudent->name, name);
newStudent->sex = sex;
newStudent->phoneNum = phoneNum;
strcpy(newStudent->familyAddress, address);
newStudent->next = nullptr;
return newStudent;
}
// 在链首插入学生信息
void insertAtHead(student*& head, student* newStudent) {
newStudent->next = head;
head = newStudent;
}
// 在链尾插入学生信息
void insertAtTail(student*& tail, student* newStudent) {
if (!tail) {
tail = newStudent;
} else {
student* current = tail;
while (current->next) {
current = current->next;
}
current->next = newStudent;
}
}
// 遍历链表并显示学生信息
void displayStudents(student* head) {
student* current = head;
while (current) {
cout << "Student ID: " << current->StudentID
<< ", Name: " << current->name
<< ", Sex: " << current->sex
<< ", Phone Number: " << current->phoneNum
<< ", Family Address: " << current->familyAddress << endl;
current = current->next;
}
}
int main() {
student* head = nullptr; // 链表头指针
student* tail = nullptr; // 链表尾指针
// 创建学生信息
student* student1 = createStudent(0, "John Doe", 1, 1234567890L, "123 Main St");
student* student2 = createStudent(6, "Jane Smith", 0, 0987654321L, "456 Elm St");
// 在链首插入学生1
insertAtHead(head, student1);
// 在链尾插入学生2
insertAtTail(tail, student2);
// 显示所有学生信息
displayStudents(head);
// 释放链表内存
student* current = head;
while (current) {
student* next = current->next;
delete current;
current = next;
}
return 0;
}
这段代码首先定义了学生信息的结构体和相关的操作函数。在main
函数中,我们创建了两个学生节点,并将它们分别插入到链表的头部和尾部。然后,我们遍历链表并打印出所有学生的信息。最后,我们释放了链表占用的内存。请注意,这段代码是一个简单的示例,实际应用中可能需要更多的错误检查和功能扩展。7
你觉得结果怎么样?