我想写一个二进制递归函数,将双链路队列中的所有数据值相加。它必须是一个void函数。
我为一个返回整数值的函数写了下面的代码。
int add(Node * Front, Node * End)
{
if(Front != Null)
{
if(Front == End)
return front->data;
if(Front->next == End)
return Front->data + end->data;
Node * ptr1 = Front;
Node * ptr2 = End;
while (ptr1 != ptr2 && ptr1-> next != ptr2)
{
ptr1 = ptr1->next;
ptr2 = ptr2->previous;
}
Node * mid = ptr1;
return add(Front, mid) + add(mid->next, End)
}
else
return 0;
}
这是双链队列中节点的结构。
typedef struct Node {
int data;
Node *next;
Node *previous;
} Node;
我想知道,如果我用一个void函数添加队列中的值,代码应该如何改变。谢谢您 :)