C#递归树

 1 protected void Page_Load(object sender, EventArgs e)
 2 {
 3 bindtree(PopId);
 4 }
 5 private void bindtree()
 6 {
 7 TreeView1.Nodes.Clear();
 8 AddTree(0, (TreeNode)null);
 9 }
10 public void AddTree(int ParentID, TreeNode pNode)
11 {
12 DataTable dt = new DataTable();
13 //数据源
14 dt = logbll.BindPop();
15 DataView dvTree = new DataView(dt);
16 //过滤ParentID,得到当前的所有子节点
17 dvTree.RowFilter = "flid = " + ParentID;
18
19 foreach (DataRowView Row in dvTree)
20 {
21 TreeNode Node = new TreeNode();
22 if (pNode == null)
23 { //添加根节点
24 Node.Text = Row["PopName"].ToString();
25 TreeView1.Nodes.Add(Node);
26 //Node.Expanded = true;
27
28 AddTree(Int32.Parse(Row["PopId"].ToString()), Node); //再次递归
29 }
30 else
31 { //添加当前节点的子节点
32 Node.Text = Row["PopName"].ToString();
33 Node.NavigateUrl = Row["PostUrl"].ToString();
34 pNode.ChildNodes.Add(Node);
35 //Node.Expanded = true;
36 AddTree(Int32.Parse(Row["PopId"].ToString()), Node); //再次递归
37 }
38 }
39 }
时间: 2024-10-03 14:14:48

C#递归树的相关文章

(转)递归树求递归算法的时间复杂度

本文转载:http://www.cnblogs.com/wu8685/archive/2010/12/21/1912347.html 递归算法时间复杂度的计算方程式一个递归方程: 在引入递归树之前可以考虑一个例子: T(n) = 2T(n/2) + n2 迭代2次可以得: T(n) = n2 + 2(2T(n/4) + (n/2) 2) 还可以继续迭代,将其完全展开可得: T(n) = n2 + 2((n/2) 2 + 2((n/22)2 + 2((n/23) 2 + 2((n/24) 2 +-

UVA839 Not so Mobile【递归树】

Before being an ubiquous communications gadget, a mobile was just a structure made of strings and wires suspending colourfull things. This kind of mobile is usually found hanging over cradles of small babies. ????The figure illustrates a simple mobil

ORACLE 递归树型结构统计汇总

区域平台统计报表,省--市--区 汇总,还有各级医院,汇总与列表要在一个列表显示. 用到ORACLE 会话时临时表  GLOBAL TEMPORARY TABLE     ON COMMIT PRESERVE ROWS; 递归树: START WITH P.PARENTORG = 'ROOT'               CONNECT BY PRIOR P.ORGCODE = P.PARENTORG; WITH 连续嵌套 记录一下便于查阅. CREATE OR REPLACE PACKAGE

swift_枚举 | 可为空类型 | 枚举关联值 | 枚举递归 | 树的概念

***************可为空的类型 var demo2 :we_demo = nil 上面这个代码串的语法是错的 为什么呢, 在Swift中,所有的类型定义出来的属性的默认值都不可以是nil 不管是普通简单值类型还是引用类型 那我就是要让这个属性默认值为空,为nil 怎么办呢,很简单,用语法,在定义这个属性的时,在类型后面声明一个? 这样就表示这个属性除了指定类型的默认值外还可以是一个可为空的类型 在Java中,最常见的错误类型就是NullPoinExecption, 为什么就是要有Nu

最全C 语言常用算法详解-排序-队列-堆栈-链表-递归-树

具体 源代码 案例查看github,持续更新中............ github地址:https://github.com/Master-fd/C-Algorithm 1. 二分法查找 2. 冒泡排序 3. 插入排序 4. 希尔排序 5. 选择排序 6. 快速排序 7. 单链表实现堆栈 8. 单链表实现队列 9. 普通单链表 10. 递归实现斐波拉契数列 11. 递归实现strlen 12. 循环链表 13. 求素数 14. 双向链表 15. 顺序表实现队列 16. 顺序表实现栈 17. 顺

在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构

将实体绑定到TreeView控件,实现树状结构的显示,如下图所示.这个功能通过HierarchicalDataTemplate实现. ? 1. 业务实体 作为举例,我定义了一个大家都很熟悉的Folder类型,即文件夹.我们都知道,文件夹又可以包含子文件夹,而且可以多层嵌套.所以,这是一个递归的结构体. public class Folder { public string Name { get; set; } public ObservableCollection<Folder> Folder

【DRP】删除递归树的操作

正如图呈现的树结构.本文从任意节点删除树形结构.提供解决方案 图中,不包括其他结点的是叶子结点.包括其他结点的是父结点,即不是叶子结点. 一 本文的知识点: (1)递归调用: 由于待删除的结点的层次是不确定的,假设是叶子结点则能够直接获取id直接删除,如:北京中医医院.华北区.假设待删除的结点是父结点,则须要继续向下查询,依次遍历出其子结点,从下往上依次删除,如'华北区'.因此我们使用递归调用. (2)保证事务的原子性 如果待删除的结点是'华北区'.则相当于删除了3条信息(华北区.北京市.北京中

Oracle递归树

例子下载: http://yunpan.cn/cLY4v5hdQeMY6 (提取码:ae65) 语法: select ... from <TableName>        where <Conditional-1>  //过滤        start with <Conditional-2>  //递归起点        connect by <Conditional-3>;  //连接限定 注意: 1.prior放在子节点端,则表示扫描树是以start

mysql中递归树状结构&lt;转&gt;

在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现. 但很多时候我们无法控制树的深度.这时就需要在MySQL中用存储过程来实现或在你的程序中来实现这个递归.本文讨论一下几种实现的方法.

web api+递归树型结构

using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using SqlSugar; using Models; using WebApplication.Dao; using System.Text; namespace WebApplication.Controllers { /// <