首页 新闻 会员 周边

递归调用 层数

0
悬赏园豆:5 [已关闭问题] 关闭于 2015-05-25 16:59

请问如何获取递归调用的层数?  

谢谢!

jay_jie的主页 jay_jie | 初学一级 | 园豆:171
提问于:2015-05-13 11:33
< >
分享
所有回答(4)
0

在递归函数中增加计数器是否可以?

lucika.zh | 园豆:62 (初学一级) | 2015-05-13 11:48
0

好多方法,简单一点就是你传个参数,说明调用者的层数。那么被调用者就是+1了。

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-05-13 12:22

能够举个简单例子

支持(0) 反对(0) jay_jie | 园豆:171 (初学一级) | 2015-05-13 14:43

@jay_jie: 

sub Recursive(byval TreeLevel as integer)

  Treelevel+=1

  Messagebox.Show(TreeLevel)

 

  Recursive(TreeLevel)

end sub 

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-05-13 15:57

@爱编程的大叔: 比如现在D盘下面有N个目录,我只想取每个目录下面最多三层的文件,后面的都不需要

 1 BOOL res = fileFind.FindFile(strPath);
 2     while (res)
 3     {
 4         hTreeDirectory = treeItem;
 5         res = fileFind.FindNextFileW();
 6         if (fileFind.IsDirectory() && !fileFind.IsDots())
 7         {
 8             CString strPath = fileFind.GetFilePath();
 9             CString strTitle = fileFind.GetFileName();
10             ShowTreeDirectory(strPath, hTreeDirectory);
11         }
12     }

这样写肯定是把D盘下所有目录都找出来了,有什么办法?

支持(0) 反对(0) jay_jie | 园豆:171 (初学一级) | 2015-05-13 17:35

@jay_jie: if TreeLevel>3 then exit sub 

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-05-13 18:00

@爱编程的大叔: 这样你会发现只能找出第一个目录下的三个文件

支持(0) 反对(0) jay_jie | 园豆:171 (初学一级) | 2015-05-14 12:13

@jay_jie: 哦,我以为你会懂的变通一下的。

你传进去后,不要修改,自己定义一个变量+1,然后判断,这样就不会影响到上一层的TreeLevel值了。

 

sub Recursive(byval TreeLevel as integer)

  dim myTreelevel=TreeLevel+1

  Messagebox.Show(myTreeLevel)

 

  Recursive(myTreeLevel)

end sub 

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-05-14 12:15
0

在函数体外定义一个静态成员变量,在函数体内对静态成员变量++。

kK_wen | 园豆:198 (初学一级) | 2015-05-13 16:11
0

对递归方法添加一个参数 leve

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-05-14 09:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册