![数据结构与算法C#实施一系列---N叉树 数据结构与算法C#实施一系列---N叉树](/rjstyle/noimg/91.webp)
Heavenkiller(原创)
n叉树的每个节点具有相同的度,n
使用系统;
使用系统集合;
空间数据结构
{
X
的narytree / / /注----- N叉树。
X
公共课narytree:树
{
成员变量
受保护对象密钥;
保护的程度;
保护树形=新的数组列表(ArrayList);
/ /保护单元高度= 0; / /临时的默认值是0
/ /创建一个空的树的属性的程度_degree
公共narytree(个_degree)
{
在这里添加构造函数逻辑
这个键= null;
这_degree度=;
这种树形= null;
}
构建n棵树的叶节点
公共narytree(个_degree,对象_key)
{
这_key关键=;
这_degree度=;
这种树形=新的ArrayList();
这个树形。能力=(int)_degree;
为(int = i 0;i)
{
This.treeList.Add(this.getemptyinstance(_degree));
}
}
/ / -----------------------------------------------------------------
受保护的虚拟对象getemptyinstance(个_degree)
{返回新narytree(_degree);}
/ / -------------------------------------------------------------------
判断树是否为空树
bool IsEmpty()公共覆盖
{返回这个键= NULL;}
以确定是否是叶节点。如果不是空树,每个子树都是叶子节点的空树。
bool IsLeaf()公共覆盖
{
如果(IsEmpty())
返回false;
(单位为I = 0;我)
{
如果(!(这{我}。IsEmpty()))
返回false;
}
返回true;
}
/ / -----------------------------------继承属性---------------------------------
公共覆盖对象键
{
得到
{
返回this.key;
}
}
/ /索引
公共覆盖树这_index } {单元
{
得到
{
如果(_index > =这个程度)
抛出新异常()!);如果它被抛出
如果(this.isempty())
返回空值;如果空树是索引返回null。
返回(树),树形{(int)_index };
}
集
{
这个树形{(int)_index } =价值;
}
}