定义一个包含学生的学号,姓名,成绩的单链表
时间: 2023-04-11 16:00:52 浏览: 105
好的,这是一个关于数据结构的问题。单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。对于这个问题,我们可以定义一个结构体来表示学生信息,包括学号、姓名和成绩,然后使用指针来连接这些节点,形成一个单链表。具体实现可以参考以下代码:
```
struct student {
int id; // 学号
char name[20]; // 姓名
float score; // 成绩
struct student *next; // 指向下一个节点的指针
};
// 创建一个新节点
struct student *create_node(int id, char *name, float score) {
struct student *p = (struct student *)malloc(sizeof(struct student));
p->id = id;
strcpy(p->name, name);
p->score = score;
p->next = NULL;
return p;
}
// 在链表尾部插入一个节点
void insert_node(struct student **head, struct student *node) {
if (*head == NULL) {
*head = node;
} else {
struct student *p = *head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
}
// 遍历链表并输出每个节点的信息
void print_list(struct student *head) {
struct student *p = head;
while (p != NULL) {
printf("id: %d, name: %s, score: %.2f\n", p->id, p->name, p->score);
p = p->next;
}
}
// 测试代码
int main() {
struct student *head = NULL;
insert_node(&head, create_node(1, "Tom", 85.5));
insert_node(&head, create_node(2, "Jerry", 90.0));
insert_node(&head, create_node(3, "Alice", 92.5));
print_list(head);
return 0;
}
```
这段代码定义了一个包含学生信息的结构体,然后使用指针来连接这些节点,形成一个单链表。我们可以通过调用 create_node 函数来创建一个新节点,然后使用 insert_node 函数将其插入到链表尾部。最后,我们可以使用 print_list 函数遍历链表并输出每个节点的信息。
阅读全文