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,
    并且在递归的时候 ,将子节点加入到父节点去。



  • 相关阅读:
    <剑指OFFER18> 18_01_DeleteNodeInList在O(1)时间删除链表结点
    哈夫曼树

    快速排序
    冒泡算法
    Java 缓存机制
    JAVA NIO
    string、stringbuilder、stringbuffer区别
    Java内存泄露的问题调查定位
    使用hibernate 框架搭建的helloworld
  • 原文地址:https://www.cnblogs.com/king_astar/p/44119.html
Copyright © 2011-2022 走看看