用C语言建立一个单链表的学生课表
时间: 2024-10-12 19:15:31 浏览: 26
在C语言中创建一个简单的单链表来表示学生课表,首先需要定义结构体`StudentCourse`,包含学生的姓名和课程信息,然后定义链表节点`Node`,以及相关的链表操作函数。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生课表节点
typedef struct Node {
char student[50]; // 学生姓名
char course[50]; // 课程名称
struct Node* next; // 指向下一个节点的指针
} Node;
// 创建新节点
Node* createNode(char* student, char* course) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode == NULL) {
printf("内存分配失败!\n");
return NULL;
}
strncpy(newNode->student, student, sizeof(newNode->student) - 1);
strncpy(newNode->course, course, sizeof(newNode->course) - 1);
newNode->next = NULL;
return newNode;
}
// 添加课程到链表
void addCourseToList(Node** head, char* student, char* course) {
Node* newNode = createNode(student, course);
if (*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 打印链表
void printList(Node* head) {
Node* temp = head;
while (temp != NULL) {
printf("%s: %s\n", temp->student, temp->course);
temp = temp->next;
}
}
int main() {
Node* listHead = NULL; // 初始化链表头指针
// 添加一些学生课程
addCourseToList(&listHead, "张三", "数学");
addCourseToList(&listHead, "李四", "物理");
addCourseToList(&listHead, "王五", "化学");
// 打印课表
printList(listHead);
return 0;
}
```
阅读全文