怎么实现增删功能
时间: 2024-01-30 19:05:39 浏览: 11
要实现链表的增删功能,可以分别实现添加节点、删除节点的函数。以下是增删节点的示例代码:
```c++
// 添加节点
void addStudent(student* head, string name, int score, double gpa) {
student* newStudent = new student();
newStudent->name = name;
newStudent->score = score;
newStudent->gpa = gpa;
newStudent->next = nullptr;
// 找到链表尾部,将新节点添加到链表尾部
student* tail = head;
while (tail->next != nullptr) {
tail = tail->next;
}
tail->next = newStudent;
}
// 删除节点
void deleteStudent(student* head, string name) {
student* prev = head;
student* curr = head->next;
while (curr != nullptr) {
if (curr->name == name) {
prev->next = curr->next;
delete curr;
cout << "删除学生 " << name << " 成功" << endl;
return;
}
prev = curr;
curr = curr->next;
}
cout << "未找到学生 " << name << endl;
}
```
上述代码中,addStudent() 函数会在链表末尾添加一个新节点;deleteStudent() 函数会删除链表中名字为 name 的学生节点。需要注意的是,在删除节点时,需要先找到要删除节点的前驱节点 prev,以便将 prev 的 next 指向要删除节点的后继节点。