C语言链表逆置题库与函数实现

需积分: 9 17 下载量 167 浏览量 更新于2024-08-01 收藏 565KB DOC 举报
计算机二级C语言上机题库中,涉及到的主要知识点包括链表操作和函数设计。题目首先要求实现一个名为`fun`的函数,其功能是逆置一个不带头结点的单向链表。在提供的代码片段中,我们看到以下关键部分: 1. 定义结构体`NODE`,包含整型数据`data`和指向下一个节点的指针`next`。 2. 函数`fun`的参数为指向链表头节点的指针`h`。首先检查头节点是否为空,如果为空则返回`NULL`。接着,设置一个临时指针`q`指向下一个节点,将头节点的`next`指针设为`NULL`,进入逆置过程。 - 使用`while`循环,每次迭代时: - 将当前节点`q`的`next`指向下一个节点,然后更新`p`为当前节点`q`。 - 将`q`指针向前移动一位,指向新的`r`节点。 - 循环条件是`q->next`不为空,当`q`变为`NULL`时,说明链表已逆置完成。 - 循环结束后,`p`指向逆置后的头节点,返回`p`。 3. `creatlist`函数用于创建一个包含给定整数数组元素的链表。它接受一个整数数组`a`,遍历数组,动态分配节点并填充数据,最后返回头节点`h`。 4. `outlist`函数用于输出链表,遍历链表打印节点的值,直到遇到`NULL`节点。 5. 在`main`函数中,首先调用`creatlist`函数生成初始链表,输出原始链表。然后调用`fun`函数逆置链表,并再次输出逆置后的链表。 因此,这段代码主要考察了C语言中的链表操作,包括链表的创建、逆置算法的理解以及如何通过函数调用来实现链表的处理。理解并掌握这些概念对于通过计算机二级C语言上机考试至关重要。考生需要能够编写类似的函数来处理不同类型的链表问题,并能正确理解并运用循环控制结构。同时,对内存管理(如`malloc`的使用)也要有所了解。