赛迪网 >> 技术应用子站 >> ASP
数据结构与算法(C#实现)系列---N叉树(一)
作者: 来源:cfan 发布时间:2006.07.27
【Java专区】 【网络安全】 【网管专区】 【linux专区】 【数据库专区】 【进入论坛】 【IT博客】 
【Eclipse】  【PHP】  【DB2】  【Ajax】  【Struts】  【Spring】 

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



Heavenkiller(原创)



N叉树的每一节点度数都相同,为N



using System;



using System.Collections;





namespace DataStructure



{



///



/// NaryTree 的摘要说明。-----N叉树



///



public class NaryTree:Tree



{



// member variables



protected object key;



protected uint degree;



protected ArrayList treeList=new ArrayList();



//protected uint height=0;//暂时默认为0





//create an empty tree whose attribute of degree is _degree



public NaryTree(uint _degree)



{



//



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



//



this.key=null;



this.degree=_degree;



this.treeList=null;



}



//构造一棵叶子结点的N叉树



public NaryTree(uint _degree,object _key)



{



this.key=_key;



this.degree=_degree;



this.treeList=new ArrayList();



this.treeList.Capacity=(int)_degree;





for(int i=0;i


{





this.treeList.Add( this.GetEmptyInstance(_degree) );



}



}



//-----------------------------------------------------------------



protected virtual object GetEmptyInstance(uint _degree)



{ return new NaryTree(_degree); }



//-------------------------------------------------------------------



//judge whether the tree is an empty tree



public override bool IsEmpty()



{ return this.key==null; }



//判定是否是叶子结点。如果即不是空树且每一棵子树均为空树,则为叶子结点



public override bool IsLeaf()



{



if(IsEmpty())



return false;



for(uint i=0;i


{



if( !(this[i].IsEmpty()) )



return false;



}



return true;



}



//-----------------------------------Inherited Attributes---------------------------------



public override object Key



{



get



{



return this.key;



}



}



//索引器



public override Tree this[uint _index]



{



get



{





if( _index>=this.degree )



throw new Exception("My:out of index!");//如果出界,则抛出异常



if( this.IsEmpty() )



return null;//如果是空树,则索引器返回一个 null



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



}



set



{



this.treeList[(int)_index]=value;



}






最全面的台式机导购资讯,形成全方位的台式机导购平台
评论】 【推荐】 【 】 【打印】 【关闭
*姓  名: 更多资料 了解方案 认识厂商
*单位名称:
*联系电话:
*电子邮件:
    
◆ 相关文章
· 加密与解密 2003-02-22
· 动态菜单 2004-11-14
· 从MP3中提取歌曲信息 2004-08-20
· net中交易处理的解决方案 2004-11-23
· 亿众国际点对点文件传输程序 2004-04-26