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



  • 相关阅读:
    240 Search a 2D Matrix II 搜索二维矩阵 II
    239 Sliding Window Maximum 滑动窗口最大值
    bzoj5029: 贴小广告&&bzoj5168: [HAOI2014]贴海报
    bzoj5178: [Jsoi2011]棒棒糖
    bzoj5293: [Bjoi2018]求和
    bzoj5194: [Usaco2018 Feb]Snow Boots
    bzoj2007: [Noi2010]海拔
    bzoj4956: [Wf2017]Secret Chamber at Mount Rushmore
    bzoj3296: [USACO2011 Open] Learning Languages
    bzoj4887: [Tjoi2017]可乐
  • 原文地址:https://www.cnblogs.com/king_astar/p/44119.html
Copyright © 2011-2022 走看看