数据结构 链表表示学生基础信息
时间: 2023-07-07 10:31:36 浏览: 152
学生信息建立采用链表结构
链表是一种常见的数据结构,可以用来表示学生基础信息。在链表中,每个节点都包含一个数据元素和一个指向下一个节点的指针。因此,我们可以定义一个包含学生基础信息的结构体,然后将其作为节点的数据元素。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生基础信息结构体
typedef struct student_info {
char name[20]; // 姓名
int age; // 年龄
char gender; // 性别
char id[10]; // 学号
struct student_info *next; // 指向下一个节点的指针
} StudentInfo;
// 创建一个新节点
StudentInfo* create_node(char name[], int age, char gender, char id[]) {
StudentInfo *node = (StudentInfo*)malloc(sizeof(StudentInfo));
strcpy(node->name, name);
node->age = age;
node->gender = gender;
strcpy(node->id, id);
node->next = NULL;
return node;
}
// 在链表末尾添加一个节点
void add_node(StudentInfo *head, StudentInfo *node) {
StudentInfo *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
// 遍历链表并打印节点信息
void print_list(StudentInfo *head) {
StudentInfo *p = head->next;
while (p != NULL) {
printf("Name: %s, Age: %d, Gender: %c, ID: %s\n", p->name, p->age, p->gender, p->id);
p = p->next;
}
}
int main() {
// 创建头节点
StudentInfo *head = (StudentInfo*)malloc(sizeof(StudentInfo));
head->next = NULL;
// 添加节点
StudentInfo *node1 = create_node("张三", 18, 'M', "10001");
add_node(head, node1);
StudentInfo *node2 = create_node("李四", 19, 'F', "10002");
add_node(head, node2);
StudentInfo *node3 = create_node("王五", 20, 'M', "10003");
add_node(head, node3);
// 遍历链表并打印节点信息
print_list(head);
// 释放节点内存
free(node1);
free(node2);
free(node3);
return 0;
}
```
上面的代码中,我们定义了一个包含学生基础信息的结构体 `StudentInfo`,并且使用 `create_node` 函数创建一个新节点。然后,使用 `add_node` 函数将节点添加到链表末尾。最后,使用 `print_list` 函数遍历链表并打印节点信息。
阅读全文