C语言中如何用链表实现学生信息管理系统中的按姓名查询
时间: 2024-02-21 20:01:48 浏览: 47
要实现学生信息管理系统中的按姓名查询功能,可以使用链表来保存学生信息。每个节点包含学生的姓名、学号、年龄等信息。查询时,遍历整个链表,找到与查询姓名匹配的节点,输出该节点中保存的学生信息即可。
具体实现过程如下:
1. 定义一个结构体来保存学生信息,包括姓名、学号、年龄等字段。
```
typedef struct student {
char name[20];
int id;
int age;
// 其他字段
struct student *next;
} Student;
```
2. 定义一个链表的头指针,用来保存链表的第一个节点。
```
Student *head = NULL;
```
3. 在添加学生信息时,将新节点插入链表的末尾。
```
void addStudent(Student *newStudent) {
if (head == NULL) {
head = newStudent;
} else {
Student *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newStudent;
}
}
```
4. 实现按姓名查询功能,遍历整个链表,找到与查询姓名匹配的节点,输出该节点中保存的学生信息。
```
void queryByName(char *name) {
Student *p = head;
while (p != NULL) {
if (strcmp(p->name, name) == 0) {
printf("学号:%d,姓名:%s,年龄:%d\n", p->id, p->name, p->age);
}
p = p->next;
}
}
```