鱼C论坛

 找回密码
 立即注册
查看: 4857|回复: 10

[已解决]大佬们能把这两个算法转换成递归算法吗球球了

[复制链接]
发表于 2021-5-25 18:48:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int seqSearch(seqlist l, datatype key)
 {  int k=l.len-1;
while  (k>=0&&l.data[k]!=key) k--;
return(k);
}
linklist linkSearch(linklist head,datatype key)
{
     linklist p=head->next;
while(p&&p=>data!=key)
p=p->next;
return p;
}
转换成递归呜呜谢谢了


最佳答案
2021-5-25 23:49:06
int seqSearch(seqlist l, datatype key)
{  
static int k = 0;
if(k < l.len && l.data[k] != 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;
}
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-25 23:49:06 | 显示全部楼层    本楼为最佳答案   
int seqSearch(seqlist l, datatype key)
{  
static int k = 0;
if(k < l.len && l.data[k] != 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;
}
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-26 21:07:55 | 显示全部楼层

大佬能具体说说嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 21:37:09 | 显示全部楼层
说什么啊  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 21:47:54 | 显示全部楼层
第一个就大概是一个在数组中  找到所给值的索引   我的想法是给个静态变量k  让k值不断加1后调用自身   以此找到索引
第二个就是链表找到所给值的节点   如果该节点不满足  就把下个节点传入该函数进行递归判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-26 22:44:15 | 显示全部楼层
lei1996 发表于 2021-5-26 21:47
第一个就大概是一个在数组中  找到所给值的索引   我的想法是给个静态变量k  让k值不断加1后调用自身   以 ...

不设静态变量可以吗 可以将while改成if 然后k--改成seqSearch(    这个可以么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 23:01:34 | 显示全部楼层
Gacy 发表于 2021-5-26 22:44
不设静态变量可以吗 可以将while改成if 然后k--改成seqSearch(    这个可以么

不用静态变量  k--之后你没办法传给递归的函数
int seqSearch(seqlist l, datatype key)这里面没有传k值得参数,除非你加一个参数int k
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-26 23:09:13 | 显示全部楼层
lei1996 发表于 2021-5-26 23:01
不用静态变量  k--之后你没办法传给递归的函数
int seqSearch(seqlist l, datatype key)这里面没有传k值 ...

想到了  你可以试试直接  while 改成 if
递归之前  l.len--
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 19:41:43 | 显示全部楼层
lei1996 发表于 2021-5-26 23:09
想到了  你可以试试直接  while 改成 if
递归之前  l.len--

这个可以再说具体吗 或者把代码全写出来呜呜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-27 20:03:51 | 显示全部楼层
int seqSearch(seqlist l, datatype key)
 {  int k=l.len-1;
 if (k>=0&&l.data[k]!=key) 
{
    l.len--;
    return seqSearch(l,key);
}
else
{
    return k;
}
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-27 20:40:02 | 显示全部楼层

感谢感谢大兄弟  我就是小菜鸡呜呜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 08:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表