C++编程题库:链表操作与统计

需积分: 50 102 下载量 175 浏览量 更新于2024-07-21 14 收藏 1.15MB DOC 举报
"C++程序设计题库,包含182道题目及答案,主要针对C++编程面试准备" 这篇资源提供了一个C++编程题库,包含了182道程序设计题,旨在帮助学习者或面试者提升C++编程技能。其中,一道具体的题目被展示出来,要求编写一个函数`computingList`来统计单向链表中数据成员`data`为负数、零和正数的节点数量。 首先,我们来看题目中的结构体定义: ```cpp struct node { int data; struct node* nextPtr; }; ``` 这是一个简单的链表节点结构体,包含一个整型数据成员`data`和一个指向下一个节点的指针`nextPtr`。 题目要求实现的`computingList`函数如下: ```cpp void computingList(node* head) { int positive = 0, negtive = 0, zero = 0; // 在这里填写代码 grading(positive, zero, negtive); } ``` 这个函数接收一个链表的头节点`head`作为参数,需要在函数体内遍历链表,统计`data`值的分布情况,并将结果分别存储到`positive`、`zero`和`negtive`中。 为了完成这个任务,你需要在`//**********Program**********//`与`//**********End**********//`之间的空白处插入适当的代码。一个可能的解决方案是使用指针遍历链表,检查每个节点的数据成员,并根据其值更新相应的计数器: ```cpp while (head != NULL) { if (head->data < 0) { negtive++; } else if (head->data == 0) { zero++; } else { positive++; } head = head->nextPtr; } ``` 之后调用`grading`函数,将统计结果传递给它: ```cpp grading(positive, zero, negtive); ``` 然而,题目中并未给出`grading`函数的具体实现,所以这部分可能是留给读者自行处理的部分,可能是用于输出统计结果或其他操作。 此外,题目还提供了一个辅助函数`createList`用于创建一个示例链表,方便测试`computingList`函数。这个函数使用数组初始化数据,并通过动态分配内存创建链表。 总结来说,这个C++题库中的题目涵盖了链表操作和基本的条件分支,是C++初学者和面试准备者的良好练习材料。解决这类问题有助于提升对C++数据结构和控制流的理解。