gpt4 book ai didi

c++ - 我们如何添加备用节点数据?

转载 作者:行者123 更新时间:2023-11-28 06:46:20 24 4
gpt4 key购买 nike

我们如何从给定的单向链表的交替节点添加数据?

例如,假设我们有 6 个节点,其数据为以下整数:1 2 3 4 5 6。所以我们应该将所有备用节点添加为 1+3+5=9 类似地 2+4+6=12 所以输出应该是 13 和 11。

我的方法很糟糕,因为它崩溃了,这里是:

while(temp->next!=NULL)
{
if(temp->next->next!=NULL)
{
sum=temp->data + temp->next->next->data;
}
else
{
sum=sum+temp->data;
}
return sum;
} //similarly i did for adding other alternate node data

谁能给我建议最好的方法?

最佳答案

看来你应该通过为两者准备变量 total 来交替进行聚合。
下面的例子

int ff = 0, sum[2] = {0};

while(temp){
sum[ff] += temp->data;
temp = temp->next;
ff = !ff;//0 -> 1, 1-> 0
}
printf("%d, %d\n", sum[0], sum[1]);
//Using a pointer if there is a need to return a value to the caller as a function
//*out1 = sum[0];*out2 = sum[1];

void sum(node_type *temp, int *out1, int *out2){
int ff = 1, sum[2] = {0};

for(;temp; temp = temp->next)
sum[ff = !ff] += temp->data;

out1 && (*out1 = sum[0]);//call E.g sum(head, &sum1, &sum2);//sum(head, &sum1, NULL);sum(head, NULL, &sum2);
out2 && (*out2 = sum[1]);
}

关于c++ - 我们如何添加备用节点数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24925065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com