关于easy- ui - tree的前篇 (1):
2016-03-04 22:04
513 查看
递归就是: 一条线执行到底 (父级的id在内存中开出的栈是不一样的,具有不同的地址还有不同的值) , 到底了以后
呢 又会返回到 有会执行foreach 去遍历 集合 然后找不到父集的id等于上一级的id的然后就会退出这一层了
去执行上面的一层的foreach 这一层 而且是继续执行下去的 依次类推
直到所有的都给执行完
这里有一个就是:1.函数的执行时从里到外的 2. 然后父级的id在内存中开出的栈是不一样的这样的id是不重复的 (障眼法)
呢 又会返回到 有会执行foreach 去遍历 集合 然后找不到父集的id等于上一级的id的然后就会退出这一层了
去执行上面的一层的foreach 这一层 而且是继续执行下去的 依次类推
直到所有的都给执行完
这里有一个就是:1.函数的执行时从里到外的 2. 然后父级的id在内存中开出的栈是不一样的这样的id是不重复的 (障眼法)
public static void LoadTreeNode(List<Ou_Permission> listPer, List<TreeNode> listNodes, int pid) { //第二级的集合 还有第一级的id foreach (var permission in listPer) { //如果权限父id=参数 if (permission.pParent == pid) { //将 权限转成 树节点 ///////中间 都是一行一行遍历的 TreeNode node = permission.ToNode(); //将节点 加入到 树节点集合 listNodes.Add(node); //递归 为这个新创建的 树节点找 子节点 LoadTreeNode(listPer, node.children, node.id); //node.children 是空的 //第二级的集合 还有第一级的id 上面的LoadTreeeNode()方法被执行完了以后就退出了 退到这里(这里是上一个foreach循环的)以后然后呢就退出了if循环了呗 然后继续执行foreach的函数了呗(这个时候foreach还没有执行完)然后就继续执行了 } } }
相关文章推荐
- 1.3:Union-Find算法-----quick-find算法
- OSWatcher Analyzer User Guide (文档 ID 461053.1)
- 矩阵乘法(SequenceFile作为输入源)--使用IDEA调试
- Requests库的几种请求 - 通过API操作Github
- 不能将多个项传入“Microsoft.Build.Framework.ITaskItem”类型的参数
- 深入掌握include_once与require_once的区别
- POJ3581 Sequence(后缀数组)
- 中间透明的UIView实现的几种方法
- iOS UIBezierPath 路径裁剪
- ue4点滴
- Java StringBuilder & StringBuffer 源代码分析
- USACO 之 Section 1.4 More Search Techniques (已解决)
- 华为EMUI4.0 基于android 6.0的bug
- BlockingQueue
- Android源码浅析: Message/Handler/MessageQueue/Looper
- PAT (Advanced Level) Practise 1017 Queueing at Bank (25)
- [hdu4010]: Query on The Trees
- SPOJ QTREE Query on a tree [树链剖分+线段树]
- NSOperationQueue与GCD的使用原则和场景
- Android自动化测试(UiAutomator)介绍与学习