用c语言建立学生信息的单链表结构( 每个学生的信息以一个结构体表示,包含了学号、姓名、成绩。)并输出。
时间: 2024-02-28 13:52:01 浏览: 87
好的,下面是用C语言建立学生信息的单链表结构的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 学生信息结构体
typedef struct student {
int id; // 学号
char name[20]; // 姓名
int score; // 成绩
struct student *next; // 指向下一个节点的指针
} STUDENT;
// 创建新节点
STUDENT* create_node(int id, char* name, int score) {
STUDENT *p = (STUDENT*) malloc(sizeof(STUDENT));
p->id = id;
strcpy(p->name, name);
p->score = score;
p->next = NULL;
return p;
}
// 添加节点到链表尾部
void add_node(STUDENT **head, STUDENT *node) {
if (*head == NULL) {
*head = node;
} else {
STUDENT *p = *head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
}
// 输出链表中所有节点的信息
void print_list(STUDENT *head) {
printf("学号\t姓名\t成绩\n");
while (head != NULL) {
printf("%d\t%s\t%d\n", head->id, head->name, head->score);
head = head->next;
}
}
int main() {
// 创建一个空链表
STUDENT *head = NULL;
// 添加节点
add_node(&head, create_node(1001, "张三", 80));
add_node(&head, create_node(1002, "李四", 85));
add_node(&head, create_node(1003, "王五", 90));
// 输出链表中所有节点的信息
print_list(head);
return 0;
}
```
代码说明:
1. 定义了一个名为 `STUDENT` 的结构体,包含了学号、姓名和成绩,以及一个指向下一个节点的指针。
2. 定义了 `create_node` 函数,用于创建一个新的节点,并返回该节点的指针。该函数接收三个参数:学号、姓名和成绩。
3. 定义了 `add_node` 函数,用于将一个节点添加到链表的尾部。该函数接收两个参数:指向链表头节点的指针和待添加的节点。
4. 定义了 `print_list` 函数,用于输出链表中所有节点的信息。
5. 在 `main` 函数中,首先创建一个空链表。然后,调用 `create_node` 和 `add_node` 函数,将三个节点依次添加到链表中。最后,调用 `print_list` 函数,输出链表中所有节点的信息。
希望这个代码对你有所帮助!
阅读全文