生成树的递归实现

原创 2004年10月21日 11:42:00

当然先要有第三方的TREEVIEW控件:)
using Microsoft.Web .UI .WebControls ;


private void InitTree(TreeNodeCollection nds,string mailfrom,long time)
  {
   //创建一个数据试图
   DataView dv=new DataView ();
   //创建一个新节点
   TreeNode tempnd=new TreeNode ();
   //给数据试图添加值
   dv.Table =dataset.Tables ["tree"];
   //试图过滤
   //dv.RowFilter ="MailFrom='" +mailfrom+ "'";
   al.Add (mailfrom);

   //关闭dataset
   dataset.Clear ();
   dataset.Dispose ();
   myconnection.Close ();
   myconnection.Dispose ();

   
  
   foreach(DataRowView drv in dv)
   {
    //从试图中获取节点信息
    tempnd=new TreeNode ();
    //获取节点的ID
    tempnd.ID =drv["MailSrc"].ToString ();
    //获取节点的TEXT
    tempnd.Text =drv["MailSrc"].ToString ();
    //获取捕捉时间
    string tempnddt=drv["capturetime"].ToString() ;
    //将时间转换为LONG便于比较
    long temp=long.Parse (tempnddt);

    //判定该节点是否可以加入(是否已经存在该节点或者捕捉时间小于父节点的捕捉时间
    if(al.Contains (tempnd.Text ) || time>temp)
     continue;
    else
    {
     //将该节点加入已存在节点处
     al.Add (tempnd.Text );
     //树中加入节点
     nds.Add (tempnd);
     //递归
     //设置新的数据集
     string tempndtxt=tempnd.Text ;
     myconnection=new System.Data.SqlClient.SqlConnection ("server=localhost;uid=sa;pwd=sa;database=zhltest");
     myconnection.Open ();
     mycommand=new System.Data.SqlClient.SqlCommand ();
     mycommand.Connection =myconnection;
     mycommand.CommandText ="select * from testmail where MailFrom='" +tempndtxt+ "'";
     adapter=new System.Data.SqlClient.SqlDataAdapter (mycommand.CommandText ,myconnection);
     dataset=new DataSet ();
     //将满足条件的存入dataset中
     adapter.Fill (dataset,"tree");
     
     InitTree(tempnd.Nodes,tempnd.ID,temp);
     
                  
    }
   }


private void Button1_Click(object sender, System.EventArgs e)
  {
   string query=treetxt.Text ;
   myconnection=new System.Data.SqlClient.SqlConnection ("server=localhost;uid=sa;pwd=sa;database=zhltest");
   myconnection.Open ();
   mycommand=new System.Data.SqlClient.SqlCommand ();
   mycommand.Connection =myconnection;
   mycommand.CommandText ="select * from testmail where MailFrom='" +query+ "'";
   adapter=new System.Data.SqlClient.SqlDataAdapter (mycommand.CommandText ,myconnection);
   dataset=new DataSet ();
   //将满足条件的存入dataset中
   adapter.Fill (dataset,"tree");
   InitTree(TreeView1.Nodes ,query,0);
  }

生成树的两种递归方式

protected void Page_Load(object sender, EventArgs e)         {             string connecting = Sys...
  • wangyonghua8
  • wangyonghua8
  • 2012年06月17日 10:55
  • 1298

Java技术积累递归调用——解析树的基本实现原理

在做项目的过程中,经常会用到树结构。关于树结构的框架我也接触过几个,比如easyui中封装的树,Ztree等。当然这些封装好的框架只需要我们去按照API来使用即可,那么树的实现原理究竟是怎样的。今天用...
  • wangyy130
  • wangyy130
  • 2015年09月17日 17:17
  • 2278

用递归生成树的算法和数据库设计

1.用递归生成树的算法和数据库设计 (1)递归说明     程序调用自身的编程方法称为递归(recursion)。在树的生成以及图的遍历中,递归用的很多。经典的算法求   n!   (求n的阶...
  • guozh90
  • guozh90
  • 2011年12月01日 17:41
  • 2827

java 使用递归动态生成树

  • 2009年07月31日 11:29
  • 138KB
  • 下载

java递归生成树

public List  getAllCommType(){   List treeList=new ArrayList();   //取到父节点id为0,只有一个   List typeLis...
  • yumuxixi
  • yumuxixi
  • 2017年10月05日 10:47
  • 629

javascript当中的无限分类递归树,今天来重写一下

为了防止标题党,先上tree函数,在写分析记录//javascript 树形结构 function toTree(data) { // 删除 所有 children,以防止多次调用 ...
  • jayhkw
  • jayhkw
  • 2017年04月01日 15:35
  • 8760

java、js中实现无限层级的树形结构(类似递归)

java: http://www.iteye.com/topic/1119961 js中: var zNodes=[ {id:0,pId:-1,name:"Aaaa"},  ...
  • jimmy609
  • jimmy609
  • 2013年09月30日 18:25
  • 85640

递归生成逻辑树

树节点的设计: package com.zhjg.tree; import java.util.ArrayList; import java.util.List; public class Tr...
  • u012506466
  • u012506466
  • 2017年02月11日 16:58
  • 420

Asp.Net 使用“递归算法”生成目录树的JSON格式(值得收藏)

声明本文摘自:http://www.cnblogs.com/yangrixing/archive/2012/08/23/2651900.html 今天在群里有群友求助,吾正好有空,顺便解答一下。...
  • dxnn520
  • dxnn520
  • 2012年11月04日 11:13
  • 5247

递归详解

4-1 递归求阶乘和 (15分) 本题要求实现一个计算非负整数阶乘的简单函数,并利用该函数求 1!+2!+3!+…+n! 的值。 函数接口定义:double fact( int n ); d...
  • jianbagengmu
  • jianbagengmu
  • 2017年06月11日 13:42
  • 255
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:生成树的递归实现
举报原因:
原因补充:

(最多只允许输入30个字)