c# 递归函数使用案例

/// <summary>
/// 递归查询
/// </summary>
/// <param name="groupID"></param>
/// <param name="idList"></param>
protected static void FindChildrenID(int groupID, StringBuilder idList)
{// 这里是找孩子节点
var gLst = RepositoryFactory.Group.FindList(p => p.ParentID == groupID, "ID", false).ToList();
foreach (var item in gLst)
{

//判断子节点是否存在,有则继续
  if (RepositoryFactory.Group.Find(p => p.ParentID == item.ID) != null)
  return FindChildrenID(item.ID, idList);

idList.Append("|" + item.ID.ToString());
}
}
时间: 2024-10-15 09:05:40

c# 递归函数使用案例的相关文章

递归与斐波那契数列

一.递归 在函数内部,可以调用其他函数;如果一个函数在内部调用自己,那这个函数就是递归函数. 案例:遍历当前目录下的所有文件 1.递归遍历 1 import os 2 def gci(filepath): 3 #遍历filepath下所有文件,包括子目录 4 files = os.listdir(filepath) 5 for fi in files: 6 fi_d = os.path.join(filepath,fi) 7 if os.path.isdir(fi_d): 8 gci(fi_d)

案例------递归调用

1  什么是递归: 实现某些功能不用递归可能要几十行代码,用递归可能几行就搞定了,而且代码清晰简洁.一直以为递归也就是自己调用自己,有一个出口条件,让他停止递归,退出函数,其实的特点并非就这些. 递归还有一个非常重要的特点:先进后出,跟栈类似,先递进去的后递出来.由于递归一直在自己调用自己,有时候我们很难清楚的看出,他的返回值到底是哪个,只要你理解了先进后出这个特点,你就会明白,第一次调用时,作为返回值的那个变量的值就是递归函数的返回值.先进后出吗,他是第一个进来,也就是最后出去的那个,当然就是

递归函数初探讨

什么是递归? 所谓的递归 ,就是函数自己直接或者间接的调用自己.复杂算法通常比较容易使用递归实现 从前有座山,山里有座庙,庙里有个老和尚讲故事,从前有座山,山里有座庙,庙里... 这个故事就是现实中递归的一个例子,循环往复,生生不息. 以下就是递归函数最简单的一个例子 function foo(n){ return n + foo(n-1); } foo(); 递归中最重要的就是如何跳出循环,因为只有程序跳出了才有结果.如果定义错误,或者缺少终结条件 可导致冻结用户界面 递归的思想:划归思想 递

递归函数

# -*- coding: utf-8 -*- #python 27 #xiaodeng #递归函数 #508 #定义: #在函数内部,可以调用其他函数,如果一个函数在内部调用其自身,这个函数就是递归函数 #递归 ''' (1)递归就是在过程或函数里调用自身[调用自身] (2)在使用递归策略时,必须有一个明确的递归结束条件,称之为递归出口 递归算法要解决的3个问题: (1)数据的定义是按递归定义的 (2)问题解法按递归算法实现 (3)数据的结构形式是按递归定义的 ''' #案例1 def mys

php利用递归函数实现无限级分类

相信很多学php的很多小伙伴都会尝试做一个网上商城作为提升自己技术的一种途径.各种对商品分类,商品名之类的操作应该是得心应手,那么就可以尝试下无限级分类列表的制作了. 什么是无限级分类? 无限级分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限级分类,将其简单理解成分类就好了.其实我们仔细想一下,生活中的分类简直太多了,衣服可以分为男装和女装,也可以分为上衣和裤子,也可以根据年龄段分类.分类无处不在,分类显得“无限”.我这里就不说无限分类的必要性了. 无限级分类原理简介 无限分类看

Swift趣味案例之汉诺塔

[问题描述]    有一个梵塔叫汉诺塔,汉诺塔上有三根柱子A.B和C,柱子A上有若干个圆盘,所有圆盘大小不等,且小的在上大的在下,如下图所示: 将柱子A上的所有圆盘借助柱子B移动到柱子C上,移动的过程中每次只能移动一个圆盘,移动后仍然是小的在上大的在下,如下图所示: 求所有圆盘的移动过程. [设计思路]  当柱子A有1个圆盘时,只需要将圆盘从柱子A移动到柱子C. 当柱子A有2个圆盘时,先将柱子A上面的圆盘从柱子A移动到柱子B,再将柱子A下面的圆盘从柱子A移动到柱子C,最后将柱子B的圆盘从柱子B移

递归函数的定义和几个小例子

递归函数 (1)什么是递归函数? 我们都知道,一个函数可以调用其他函数.如果这个函数在内部调用它自己,那么这个函数就叫递归函数. (2)递归函数的作用 举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n 1 #不使用递归的方法: 2 n=4 #求4的阶乘 3 result=1 4 i=1 5 while i<=4: 6 result=result*i 7 i+=1 8 9 print(result) 10 11 #使用递归的方法: 12 def test1(n):#定义函

9-[函数]-递归函数

1.引出递归函数 需求:把10不断除以2,知道不能除为止 n = 10 while True: n = int(n/2) print(n) if n == 0: break # 结果 5 2 1 0 2.递归深度 (1)递归深度 def cacl(n): print(n) return cacl(n/2) cacl(10) (2)查看递归深度 (3)递归函数 def cacl(n): print(n) n = int(n/2) if n > 0: # 递归出口 cacl(n) cacl(10)

python递归函数及二分法查找

函数的递归: 在一个函数的内部调用自己 死循环: 可以无限循环,不会停止 while True: print('我不是递归') 递归: 不是死循环,有最大循环深度 def story(): print('我是递归') story() story() 超过了递归的最大深度报错 RecursionError: maximum recursion depth exceeded while calling a Python object 官网上 源码中设置的递归深度: 1000自己实际测试递归深度: 9