用单链表或者顺序表实现一个简单的学生信息管理系统
时间: 2024-10-14 09:04:00 浏览: 36
在使用单链表或顺序表实现学生信息管理系统时,我们通常会设计一个包含基本属性如学号、姓名和成绩的数据结构,比如在C++中可以这样定义:
```cpp
// 使用结构体表示学生信息
struct Student {
int id;
string name;
double score;
// 链表节点结构体
struct Node {
Student data; // 学生数据
Node* next; // 指向下一个节点的指针
} *head;
};
```
对于顺序表(数组),我们可以直接创建一个Student数组,并用索引来访问和管理学生信息:
```cpp
vector<Student> studentList; // C++ STL中的vector用于顺序存储
void addStudent(Student s) {
studentList.push_back(s);
}
Student getStudent(int index) {
if (index < 0 || index >= studentList.size()) {
throw std::out_of_range("Invalid index");
}
return studentList[index];
}
```
对于单链表,操作会涉及节点指针:
```cpp
void addStudent(Student s) {
Node* newNode = new Node();
newNode->data = s;
newNode->next = head;
head = newNode;
}
Student getStudent(int index) {
if (index < 0) {
return nullptr; // 或抛出异常
}
Node* current = head;
for (int i = 0; i < index && current != nullptr; i++) {
current = current->next;
}
if (current == nullptr) {
return nullptr; // 或抛出异常
}
return current->data;
}
```
阅读全文