C++模板类实现学生信息单链表,数据类型为结构体,完成增删修改等基本操作
时间: 2024-09-25 16:15:30 浏览: 40
在C++中,我们可以创建一个模板类来实现学生信息单链表的数据结构。首先,我们需要定义一个结构体`Student`表示学生的基本信息,比如学号、姓名和年龄。然后,我们构建模板类`StudentList<T>`,其中`T`是一个模板参数,代表`Student`的类型。
```cpp
// 定义学生结构体
struct Student {
int id;
std::string name;
int age;
};
// 模板类用于存储学生信息
template <typename T>
class StudentList {
private:
struct Node {
T data;
Node* next;
};
public:
// 构造函数
StudentList() : head(nullptr) {}
// 插入新节点
void insert(T student) {
Node* newNode = new Node{std::move(student), nullptr};
if (head == nullptr) {
head = newNode;
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 删除指定节点
void remove(int id) {
if (head == nullptr) return;
Node* current = head;
Node* previous = nullptr;
if (current->data.id == id) {
head = current->next;
delete current;
return;
}
while (current != nullptr && current->data.id != id) {
previous = current;
current = current->next;
}
if (current == nullptr) return; // 如果没找到,则不做处理
previous->next = current->next;
delete current;
}
// 修改节点
void update(int id, const T& updatedData) {
Node* current = head;
while (current != nullptr) {
if (current->data.id == id) {
current->data = updatedData;
break;
}
current = current->next;
}
}
// 其他辅助方法,如查找、遍历等...
private:
Node* head;
};
```
在这个模板类中,我们实现了插入、删除和修改学生信息的基本操作。
阅读全文