gpt4 book ai didi

使用单次遍历计算链表中的二进制等价物?

转载 作者:行者123 更新时间:2023-11-30 21:08:20 26 4
gpt4 key购买 nike

链表每个节点的数据都包含1/0,单次遍历时要计算等值的小数

使用递归和非递归最好是C?

NODE *decimalData(NODE *head)
{
int sum=0;
if(head->next==0)
{
if(head->data==0) return 0;
else return 1;
}
sum=decimalData(head->next);
return 2*sum;
}

最佳答案

您没有说明在 head->next 处找到的数据位是否比当前的 head->data 更重要或更不重要。如果它更重要,那么问题就会稍微简化:

unsigned decimalData(NODE *head)
{
unsigned sum = head->data;

if (head->next != NULL)
{
sum += (decimalData(head->next) << 1);
}

return sum;
}

关于使用单次遍历计算链表中的二进制等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39420717/

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