C++实现动态链表:创建、插入与删除操作

需积分: 10 3 下载量 160 浏览量 更新于2024-09-11 收藏 3KB TXT 举报
"这篇代码示例展示了如何在C++中创建、插入和删除动态链表。动态链表是一种数据结构,其中元素可以在程序运行时动态地添加或删除,不同于静态数组,它不需要预先确定大小。这里,我们定义了一个名为`student`的结构体,包含学生编号`num`、分数`score`和指向下一个节点的指针`next`。程序通过`head`全局变量维护链表的头节点。主要函数包括`creatfun`用于创建链表,`printfun`用于打印链表,`delfun`用于删除指定编号的学生,以及`insertfun`用于插入新节点。" 动态链表是计算机科学中常用的一种数据结构,它允许在内存中动态地分配和管理节点。在这个示例中,动态链表用于存储学生信息,每个节点(`student`结构体)包含学生的ID和成绩。链表的头节点通过全局变量`head`进行管理,初始值为`NULL`,表示链表为空。 `creatfun`函数是创建链表的主要函数。用户输入学生的ID和分数,直到输入0为止,表示链表结束。每次读入新学生信息后,会创建一个新节点,并将前一个节点的`next`指针指向新节点。最后,将`pt->next`设置为`NULL`以标记链表的末尾,然后释放最后一个不需要的节点(因为它的`next`已经设置为`NULL`)。 `printfun`函数用于打印链表中的所有节点。它遍历链表,从头节点开始,逐个输出学生的信息,直到遇到`NULL`指针表示链表结束。 `delfun`函数根据用户输入的ID删除相应的学生节点。首先,遍历链表找到要删除的节点,然后修改其前一个节点的`next`指针以跳过被删除的节点。如果要删除的是头节点,需要更新`head`的指向。 `insertfun`函数允许在链表中插入新节点。它接收一个指向当前链表长度的指针`t`,并根据用户输入的插入位置和学生信息创建新节点并插入到链表中。插入后,更新`t`的值以反映新的链表长度。 这个程序提供了动态链表的基本操作,包括创建、打印、删除和插入,是理解链表操作的一个良好起点。