【发布时间】:2020-05-18 03:53:27
【问题描述】:
此代码应该使用包装函数计算所有节点。这是一个循环链表,所以我用temp指向rear->next,然后用temp遍历直到temp ==rear。
int count_all(node *rear) {
int count = 0;
if (!rear)
return 0;
if (rear == rear->next)
return 1;
return recursive_count_all(rear,count);
}
int recursive_count_all(node *rear,int &count) {
if (!rear)
return 0;
node * temp = rear->next;
if (rear == temp)
return 1;
else
temp = temp->next;
return recursive_count_all(rear->next, ++count);
}
【问题讨论】:
-
这是一种定义链表的有趣方式,
rear == rear->next;你确定吗? -
几天前我们刚接触到循环链表 ADT。您想检查是否后==后->下一步以查看它是否为单项列表。
-
包装器应该可以直接用初始值
return recursive_count_all(rear, 0);调用递归函数。 -
我错过了“圆形”部分;我的错。您的递归调用中可能需要两个
node?
标签: c++ recursion segmentation-fault wrapper