gpt4 book ai didi

c - 搜索链表时输出错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:27 25 4
gpt4 key购买 nike

我创建了一个链表,然后使用下面的搜索函数来获取数据字段的位置,但它返回的值是链表的最后一个元素。我无法猜测为什么

int search(struct node *curr,int d,int i)
{
if (!(curr-1))
return(0);
if (curr->data == d)
return i;

else
{
i++;
search(curr->link,d,i);
}
}

我用下面的语句从main控制它:

m=search(first,data,i)//这里first是指向第一个元素的指针,data是要搜索的元素

最佳答案

if (!(curr-1))

为什么是-1

else
{
i++;
search(curr->link,d,i);
}

您忘记了 return 语句。否则,返回值未定义。然后,您的递归 search 函数可能如下所示:

int search(struct node *curr, int d, int i)
{
if (curr == NULL)
return 0; /* If 1 <= i <= n */
else if (curr->data == d)
return i;
else
return search(curr->link, d, i + 1);
}

关于c - 搜索链表时输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17103739/

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