大佬们能把这两个算法转换成递归算法吗球球了
int seqSearch(seqlist l, datatype key){int k=l.len-1;
while(k>=0&&l.data!=key) k--;
return(k);
}linklist linkSearch(linklist head,datatype key)
{
linklist p=head->next;
while(p&&p=>data!=key)
p=p->next;
return p;
}转换成递归呜呜谢谢了
int seqSearch(seqlist l, datatype key)
{
static int k = 0;
if(k < l.len && l.data != key)
{
k++;
return seqSearch(l, key);
}
else
{
return k;
}
}
linklist linkSearch(linklist head,datatype key)
{
if(head && head->data != key)
{
return linkSearch(head->next, key);
}
else
{
return head;
}
} lei1996 发表于 2021-5-25 23:49
大佬能具体说说嘛 说什么啊{:10_256:} 第一个就大概是一个在数组中找到所给值的索引 我的想法是给个静态变量k让k值不断加1后调用自身 以此找到索引
第二个就是链表找到所给值的节点 如果该节点不满足就把下个节点传入该函数进行递归判断 lei1996 发表于 2021-5-26 21:47
第一个就大概是一个在数组中找到所给值的索引 我的想法是给个静态变量k让k值不断加1后调用自身 以 ...
不设静态变量可以吗 可以将while改成if 然后k--改成seqSearch( 这个可以么 Gacy 发表于 2021-5-26 22:44
不设静态变量可以吗 可以将while改成if 然后k--改成seqSearch( 这个可以么
不用静态变量k--之后你没办法传给递归的函数
int seqSearch(seqlist l, datatype key)这里面没有传k值得参数,除非你加一个参数int k lei1996 发表于 2021-5-26 23:01
不用静态变量k--之后你没办法传给递归的函数
int seqSearch(seqlist l, datatype key)这里面没有传k值 ...
想到了你可以试试直接while 改成 if
递归之前l.len-- lei1996 发表于 2021-5-26 23:09
想到了你可以试试直接while 改成 if
递归之前l.len--
这个可以再说具体吗 或者把代码全写出来呜呜 int seqSearch(seqlist l, datatype key)
{int k=l.len-1;
if (k>=0&&l.data!=key)
{
l.len--;
return seqSearch(l,key);
}
else
{
return k;
}
} lei1996 发表于 2021-5-27 20:03
感谢感谢大兄弟我就是小菜鸡呜呜
页:
[1]