递归算法
来源:互联网 发布:备份软件购买 编辑:程序博客网 时间:2024/05/17 03:22
今天为了解决treeview数据绑定的问题。不得不又把递归算法拿来复习啦一下。想来已经有好几年没有碰这个东东咯:)还是在大学学数据结构的时候学的。当时觉得这个东东没有什么用。不过现在看来用处蛮大的,真的是书到用时放很少啊!!!
首先建立一个数据库
id text sjid 1 a 0 2 b 1 3 c 1 4 d 2 5 e 2 6 f 3 7 g 3 8 h 2
id:主键 text:节点主题 sjid:上级节点id
递归的算法精髓就是,函数在方法体内自己调用自己。它特别适合用来遍历树结构。我们先查询出数据中本节点的所有子节点,然后遍历这些子节点。遍历时实施递归调用,再查询子节点的子节点。直到末级没有子节点后,逐级返回。
其实这个用图比较好表示,不过这里没有图,只有口述咯:)
代码如下:
void recursion(int sjid) { //每次递归都要实例化一个集合,这里我们用的是dataset DataSet1.recursionDataTable ds = new DataSet1.recursionDataTable(); ds = ta.Getsjid(sjid);//查询出下级节点 if (ds.Count != 0)//判断是否有下级节点,没有就跳过,不再递归。 { foreach (DataSet1.recursionRow row in ds.Rows)//有就遍历下级节点 { //打印下级节点信息 Console.Write(row.id+" "); Console.Write(row.text+" "); Console.WriteLine(row.sjid); recursion(row.id);//递归调用,将下级节点id作为参数传过去,继续查找它的子节点 //每次递归都会等待下级节点查询完毕返回,在继续遍历下一个同级级节点 //也就是说它会等递归到末级节点后,逐级返回。 } } }
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- Java之final
- S60 开发环境配置
- 多线程笔记1
- Excel宏_实现对动态数据求均值和落在特定范围的数据的个数
- 资源束相关应用方法集合
- 递归算法
- 忘记该忘记的
- 《C程序设计》_(第二版)_谭浩强著_P121_6.15题目解答
- 清理垃圾和自动安装补丁
- C Run-Time Libraries 和编译选项的关系
- Matrix TCL Pro 2.11
- _beginthreadex、CreateThread、AfxBeginThread的选择
- c / c++获取文件长度
- ADC0832驱动