欢迎光临
我们一直在努力

数据结构与算法(c#实现)系列—n叉树(二) _c#教程

建站超值云服务器,限时71元/月

数据结构与算法(C#实现)系列—N叉树(二)


Heavenkiller(原创)


public override uint Degree


         {


              get


              {


                   return this.degree;


              }


         }
                     


         //只用于空树结点


         public virtual void AttachKey(object _obj)


         {


              if(!IsEmpty())


                   throw new Exception(“My:this node must be a empty tree node!”);


              this.key=_obj;


              this.treeList=new ArrayList();//产生一个degree长的数组,并将其初始化为空树


              this.treeList.Capacity=(int)this.degree;


 


              for(int i=0;i<this.degree;i++)


              {


                   treeList.Add(new NaryTree(this.degree));


              }


              /*


              foreach(object tmpObj in this.treeList)


              {


                   tmpObj=new NaryTree(this.degree);


              }


              */


         }


         //只用于叶子结点,将叶子结点变为一个空结点,并返回叶子结点关键字的引用


         public virtual object DetachKey()


         {


              if(!IsLeaf())


                   throw new Exception(“My:this node must be a leaf node!”);


              object result=this.key;//store this leaf node temporary


              this.key=null;


              this.treeList=null;


 


              return result;


         }


         //将子树连接到指定树的第num个结点上,前提是这个结点必须是空结点,并且度数相同,否则抛出异常


         public virtual void AttachSubtree(uint num,NaryTree _naryTree)


         {


              if(this.IsEmpty())


                   throw new Exception(“My:it cant be a empty tree!”);


              if(!(this[num-1].IsEmpty()) | this.degree!=_naryTree.degree )


                   throw new Exception(“My:this[i-1] must be empty and they should have the same degree!”);


              this[num-1]=_naryTree;


         }


         //仅为非空树定义,从给定树中删去它的第i棵子树并连上一个空树,度数相同,并且返回删除的子树引用


         public virtual NaryTree DetachSubtree(uint num)


         {


              if (IsEmpty())


                   throw new Exception(“My:it cant be empty! “);


              NaryTree tmpTree=this;


              ((NaryTree)this[num-1]).key=null;


              ((NaryTree)this[num-1]).treeList=null;


 


              return this;


         }


     }


}


 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 数据结构与算法(c#实现)系列—n叉树(二) _c#教程
分享到: 更多 (0)