定义学生结构体,使用单链表完成10个学生信息的存储并顺序打印输出所有学生信息,然后删除第6个学生的信息,并再次顺序打印输出所有学生信息。
时间: 2024-09-17 22:07:01 浏览: 31
C++课程设计-单链表——学生信息管理系统.docx
5星 · 资源好评率100%
首先,我们可以定义一个简单的`Student`结构体,包含姓名和学号两个字段:
```c
typedef struct {
char name[50];
int id;
} Student;
```
接下来,我们创建一个单链表节点,用于存储学生的数据:
```c
typedef struct Node {
Student student;
struct Node* next;
} Node;
```
然后我们需要一个头结点和一些辅助函数来操作链表:
```c
Node* head = NULL;
Node* delete_student(Node* node, int index); // 删除指定位置的学生函数
void add_student(Node** head, const char* name, int id) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->student.name = name;
newNode->student.id = id;
newNode->next = *head;
*head = newNode;
}
void print_students(Node* node) {
while (node != NULL) {
printf("姓名:%s, 学号:%d\n", node->student.name, node->student.id);
node = node->next;
}
}
```
现在可以按照以下步骤完成任务:
1. 初始化并添加10个学生信息到链表中。
2. 打印出所有学生信息。
3. 删除第6个学生的信息。
4. 再次打印出所有学生信息。
以下是完整示例:
```c
int main() {
for (int i = 1; i <= 10; i++) {
add_student(&head, "学生" __func__, i);
}
print_students(head);
// 删除第6个学生(从0开始计数)
head = delete_student(head, 5);
print_students(head);
return 0;
}
```
阅读全文