首页 >> 读书频道 >> 电脑 >> 数据结构与算法(C#实现)系列---N叉树(一)
 
· 用C#做ScreenSa
· c#编写的PING工具
· C#农历
· 《.net编程先锋C#》
· 第三章 第一个C#应用程
· 《.net编程先锋C#》
· 《.net编程先锋C#》
· 操作Excel(C#)
· 如何用Visual C#
· 用Visual C#调用
· 八皇后问题的C#解答
· 讲解C#的Namespa
 
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
· 2006高考录取规则
· 首批中国世界名牌产品和2
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

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


查看有无更新版本

关键字:C# 2006-8-31

 


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.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;
              }
         }

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

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

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑