C语言实现链表操作:创建、插入与删除学生信息

需积分: 1 0 下载量 189 浏览量 更新于2024-09-14 收藏 2KB TXT 举报
"本资源主要介绍了如何在C语言中创建、插入和删除列表,特别是针对学生数据(包括学号和姓名)的操作。" 在编程中,列表是一种常用的数据结构,用于存储一系列有序或无序的元素。在这个示例中,我们看到的是一个简单的链表实现,用于管理学生数据。链表由`STU`结构体定义,包含学生的学号(`num`)、姓名(`name`)以及指向下一个节点的指针(`next`)。程序定义了三个主要函数:`creat()`用于创建列表,`insert()`用于插入新学生,`delet()`用于删除指定学号的学生。 1. 创建列表: 函数`creat()`负责接收用户输入的学生学号,并构建链表。首先,分配内存空间给两个节点`p1`和`p2`,然后不断读取学号,直到遇到0为止。每个新输入的学号都会被添加到链表中,通过`p2->next = p1`连接。最后,返回链表的头指针`head`。 2. 打印列表: `print()`函数遍历链表并打印所有学生的学号。它从头节点开始,通过`for`循环逐个访问每个节点,直到到达链表末尾。 3. 插入操作: `insert()`函数接收链表头指针`head`和一个新的学生节点`stu`。该函数找到合适的位置将新节点插入链表,保持学号的升序排列。它通过`do...while`循环找到合适的插入位置,然后更新前一个节点的`next`指针以包含新节点。 4. 删除操作: `delet()`函数接受链表头指针`head`和要删除的学生的学号`n`。它遍历链表寻找匹配的学号,如果找到,根据其在链表中的位置进行删除:如果它是头节点,则更新头指针;否则,更新前一个节点的`next`指针。若未找到匹配的学号,输出错误提示。 5. 主函数: `main()`函数是程序的入口点。它调用`creat()`创建初始的链表,然后可以调用`insert()`和`delet()`进行进一步操作。然而,在给出的代码片段中,`main()`函数没有完成,因此无法执行插入或删除操作。 这个简单的链表实现为理解和实践C语言中的动态数据结构提供了基础。虽然这个例子是针对学生数据,但同样的方法可以应用于任何其他类型的数据,只需修改`STU`结构体以适应所需的数据。学习这些基本操作对于理解更复杂的数据结构和算法至关重要。