动态链表基础入门与创建

需积分: 9 2 下载量 75 浏览量 更新于2024-08-05 1 收藏 1KB TXT 举报
"动态链表是一种数据结构,它允许在运行时动态地存储和管理数据,而无需预先知道存储空间的确切大小。在C语言中实现动态链表的关键在于定义节点结构、创建节点、链接节点以及遍历链表。以下是对给定代码的详细解析: 1. 节点结构定义: - `struct student` 定义了一个名为`student`的结构体,包含成员变量`num`(整型,表示学号)和`score`(浮点型,表示分数)。结构体还包含一个指向下一个节点的指针`next`。 2. 函数声明: - `struct student *creat()` 是一个用于创建动态链表的函数,它返回链表的头节点。 - `void print(struct student *head)` 是一个用于打印链表中所有节点的函数。 3. 主函数`main()`: - 在主程序中,首先调用`creat()`函数创建一个动态链表,并将其结果赋值给`stu`。 - 然后,调用`print(stu)`来显示链表中的所有记录。 - 最后,使用`system("pause")`暂停程序执行,以便观察链表内容。 4. `creat()` 函数: - 此函数首先创建两个临时节点`p1`和`p2`,并分配内存。 - 用户被提示输入学号和分数,然后将这些值分别存储到`p1`节点中。 - 使用循环,根据用户输入的数据不断创建新节点,并链接到前一个节点的`next`指针上。当输入的学号为0时,结束循环,设置最后一个节点的`next`指针为`NULL`,表示链表结束。 - 函数返回链表的头节点`head`。 5. `print()` 函数: - 接收链表的头节点作为参数。 - 首先输出链表中的节点总数`n`。 - 然后使用`do-while`循环遍历链表,打印每个节点的学号和分数,直到遇到`NULL`节点。 总结来说,这段代码展示了如何使用C语言创建一个简单的动态链表,包括节点的创建、链接以及链表内容的输出。通过这个实例,新手可以理解动态链表的基本概念和操作,为进一步学习更复杂的链表操作打下基础。"