数据结构与算法(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; } } }
数据结构与算法(c#实现)系列—n叉树(二) _c#教程
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 数据结构与算法(c#实现)系列—n叉树(二) _c#教程
相关推荐
-      利用c#远程存取access数据库_c#应用
-      c# 3.0新特性系列:隐含类型var_c#教程
-      c#动态生成树型结构的web程序设计_c#应用
-      论c#变得越来越臃肿是不可避免的_c#应用
-      用c#监控并显示cpu状态信息_c#应用
-      c#中实现vb中的createobject方法_c#应用
-      photoshop给花瓶打造彩绘效果_photoshop教程
-      使用c#创建sql server的存储过程_c#应用