以单链表的形式创作一个学生表或者是图书表
时间: 2024-09-27 19:12:20 浏览: 19
创建一个以单链表形式表示的学生表或图书表通常涉及定义节点结构,并包含相关的属性。这里以学生表为例说明:
**1. 定义学生节点(StudentNode)结构:**
```cpp
struct StudentNode {
// 学生信息
std::string name;
int id;
float score;
// 链表节点链接
StudentNode* next; // 指向下一个学生的指针
// 构造函数
StudentNode(const std::string& name, int id, float score) :
name(name), id(id), score(score), next(nullptr) {}
};
```
**2. 学生链表(StudentList)实现:**
```cpp
class StudentList {
private:
// 首节点
StudentNode* head;
public:
// 初始化链表
StudentList() : head(nullptr) {}
// 插入新学生
void addStudent(const std::string& name, int id, float score) {
StudentNode* newNode = new StudentNode(name, id, score);
if (head == nullptr) {
head = newNode;
} else {
StudentNode* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
// 删除学生
void deleteStudent(int id) {
if (head == nullptr) return;
if (head->id == id) {
StudentNode* temp = head;
head = head->next;
delete temp;
return;
}
StudentNode* current = head;
while (current->next != nullptr && current->next->id != id) {
current = current->next;
}
if (current->next != nullptr) {
current->next = current->next->next;
delete current->next;
}
}
// 其他链表操作,如查找、遍历等...
};
```
对于图书表(BookList),只需将`name`换成书名(`title`),`id`换成书籍编号(`bookID`),`score`换成相关字段(比如作者、出版日期等)。其他链表操作基本保持一致。