高手们帮帮忙,这两种递归为什么第一种stack overflow

skyming 2011-07-25 02:52:31
int find(int i)
{

if(str[i]!=i)
str[i]=find(str[i]);
return str[i];
}
scanf("%d%d",&x,&y);
第一种
/*str[x]<str[y] ? str[y]=x,find(y):str[x]=y,find(x);*/

第二种
x=find(x);y=find(y);
if(x!=y)
str[y]=x;
...全文
77 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
str[0] = 1, str[1] = 0;调用find(0)会怎样?
至善者善之敌 2011-07-25
  • 打赏
  • 举报
回复
str[x]<str[y] ? str[y]=x,find(y):str[x]=y,find(x);



这种写法还真没试过

单步调试。。。
赵4老师 2011-07-25
  • 打赏
  • 举报
回复
“给定一个小点的输入,完整单步跟踪一遍。”是理解递归函数工作原理的不二法门!
skyming 2011-07-25
  • 打赏
  • 举报
回复
求解中????

69,378

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧