首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

找到好东西了——数据结构与算法(C#实现)--N叉树(一)--与大家分享解决方案

2012-02-09 
找到好东西了——数据结构与算法(C#实现)--N叉树(一)--与大家分享数据结构与算法(C#实现)系列---N叉树(一)He

找到好东西了——数据结构与算法(C#实现)--N叉树(一)--与大家分享
数据结构与算法(C#实现)系列---N叉树(一)

Heavenkiller(原创)

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

using   System;

using   System.Collections;


namespace   DataStructure

{

///   <summary>

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

///   </summary>

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.Capacity;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 <this.degree;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( "Myut   of   index! ");//如果出界,则抛出异常

if(   this.IsEmpty()   )

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

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

}

set

{

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

}

}

http://www.itpub.net/showthread.php?threadid=611735&pagenumber=

[解决办法]
看看~
[解决办法]
N 受教,
------解决方案--------------------


study ......

[解决办法]
呵呵
[解决办法]
好东东,感谢LZ。学习
[解决办法]
好东西大家要分享

[解决办法]
学习了
[解决办法]
学习下```````
[解决办法]
好东东哦
绝对要学习的
[解决办法]
学习
[解决办法]
收藏,谢谢
[解决办法]
不错, 刚来就看到这么好的一篇文章!! 支持!
[解决办法]
帮你顶
[解决办法]
大哥,数据结构是基本功。语言不同而已。如果你不能实现N叉树,只能说明你的基本功太差

热点排行