数据结构与算法C#实施系列--广义树1

数据结构与算法C#实施系列--广义树1

数据结构与算法(C#实现)系列---广义树(一)


Heavenkiller(原创)


广义树和基本树的主要区别就是有任意的度


using System;
using System.Collections;
namespace DataStructure


{
     ///


     /// GeneralTree 的摘要说明。


     /// general tree is a tree which has a arbitrary degree and no empty tree


     /// use ArrayList to replace ListAsLinkedList


     ///


     public class GeneralTree:Tree


     {


         protected object key=null;


         protected uint degree=0;


         //protected uint height=0;


 


         protected ArrayList treeList=new ArrayList();


 


         public GeneralTree(object _objKey)


         {


              //


              // TODO: 在此处添加构造函数逻辑


              //


 


              key=_objKey;


              degree=0;


         //   height=0;


              ArrayList treeList=new ArrayList();


         }


 


         public virtual void AttackSubtree(GeneralTree _gTree)


         {


              this.treeList.Add(_gTree);


              ++degree;


         }


         public virtual GeneralTree DetachSubtree(GeneralTree _gTree)


         {


             


              this.treeList.Remove(_gTree);


              degree--;


             


              return _gTree;//?????  how to remove ,reference or object????


         }


 


         public override Tree this[uint _index]


         {


              get


              {


                   if(_index>=this.degree)


                       throw new Exception("my:out of index");


                   return (Tree)treeList[(int)_index];


              }


              set


              {
                   treeList[(int)_index]=value;


              }
         }


tag:算法数据结构广义系列电脑软件

相关内容