学生信息管理单链表实现c++
时间: 2024-10-28 16:11:36 浏览: 35
在C++中,我们可以使用结构体(struct)或类(class)来实现学生信息管理的单链表。首先,我们需要创建一个名为`Student`的结构体或类,包含学生的属性如姓名、学号等。然后,定义一个节点(Node)类,它包含数据成员和指向下一个节点的指针。
以下是一个简单的单链表节点类和学生信息类的示例:
```cpp
#include <iostream>
using namespace std;
// 定义学生信息类
class Student {
public:
string name;
int id;
// 构造函数和析构函数
Student(string n = "", int i = 0) : name(n), id(i) {}
~Student() {}
// 打印学生信息
void display() {
cout << "Name: " << name << ", ID: " << id << endl;
}
};
// 定义链表节点类
class Node {
private:
Student data;
Node* next; // 指向下一个节点
public:
Node(Student s, Node* n = nullptr) : data(s), next(n) {}
// 获取和设置数据
Student& getData() { return data; }
void setData(Student s) { data = s; }
// 获取下一个节点
Node* getNext() const { return next; }
void setNext(Node* n) { next = n; }
};
// 链表类,包含插入和遍历操作
class StudentList {
private:
Node* head;
public:
// 初始化链表为空
StudentList() : head(nullptr) {}
// 插入新学生
void insert(Student student) {
if (!head) {
head = new Node(student);
} else {
Node* current = head;
while (current->getNext()) {
current = current->getNext();
}
current->setNext(new Node(student));
}
}
// 遍历链表并打印学生信息
void printStudents() {
Node* temp = head;
while (temp) {
temp->getData().display();
temp = temp->getNext();
}
}
};
int main() {
StudentList list;
list.insert(Student("张三", 1001));
list.insert(Student("李四", 1002));
list.printStudents();
return 0;
}
```
阅读全文