zoukankan      html  css  js  c++  java
  • 错误的递归

    为了能在webcontrols的Treeview中使用HTML 元素,试图用递归来产生Treeview的所有节点,
    下面是我的尝试代码,当然结果是错误的。






            
    public void Create1 ()
            
    {
                thisNode 
    =new TreeNode();
                TreeNode o 
    = new TreeNode();
                dp 
    = new Fiberxon.HR.Biz.Department();
                Fiberxon.HR.Biz.DeparmentNode RootDNode 
    = dp.GetRoot();
                o.Text  
    = RootDNode.getName();
                o.NodeData 
    = RootDNode.getDepartID();
                newNode(o);

                
            }

            
    public void newNode(TreeNode ParentNode)
            
    {
                Fiberxon.HR.Biz.DeparmentNode dnode 
    = new DeparmentNode(ParentNode.NodeData);
                
    if(dnode.IsRoot)
                
    {
                    thisNode.Nodes.Add(ParentNode);
                }

                
                
                
    if(!dnode.IsLeaf)
                
    {
                    
    for(int i=0;i<dnode.SubDepartmentCount;i++)
                    
    {
                        TreeNode node 
    = new TreeNode();//每次都被初始化调了,
                        node.Text 
    = dnode.GetSubNodes[i].getName();
                        node.NodeData 
    = dnode.GetSubNodes[i].getDepartID();
                        ParentNode.Nodes.Add(node);
                
    //        thisNode2 = new TreeNode();
                
    //        thisNode2 = node;
                        newNode(node);
                    }

                }

                
    else
                
    {                
                        
    return;
                    
                    
                    
                }


            
    //thisNode.Nodes.Add(ParentNode);
                
            
            
                



            }


    每次由于在循环中
      TreeNode node = new TreeNode() //初始化掉了。
    所以,节点最后返回并不是自己想要的层层嵌套的递归,
    而是只有一个值。

    ===============================
    Update by rock jing  on 2004-9-18
    ===============================
    那么怎么解决呢?
    我想是这么一个问题,那就是创建的节点必须保持存在,不能被重新new或者是覆盖。
    如果节点有50个,则必须创建50个TreeNode,
    并且在递归的时候 ,将子节点加入到父节点去。



  • 相关阅读:
    通俗的讲解下傅立叶分析和小波分析之间的关系
    Kalman滤波
    K-L变换和 主成分分析PCA
    c语言字符串库函数#include<string.h>
    c语言字符类别测试库函数#include<ctype.h>
    c语言之extern关键字
    陈正冲老师讲c语言之声明和定义的区别
    陈正冲老师讲c语言之const关键字
    陈正冲老师讲c语言void关键字
    陈正冲老师讲c语言之内存的申请malloc() 和释放free()
  • 原文地址:https://www.cnblogs.com/king_astar/p/44119.html
Copyright © 2011-2022 走看看