数据结构与算法的C实现#系列---N叉树两
Heavenkiller(原创)
公共覆盖的程度
{
得到
{
返回this.degree;
}
}
仅用于空树节点
公共虚拟无效attachkey(对象_obj)
{
如果(!IsEmpty())
抛出新的异常():这个节点必须是空树节点!;
这_obj关键=;
这个树形=新的ArrayList(度); / /创建一个长的数组,它被初始化为空树
这个树形。能力=(int)this.degree;
为(int = i 0;i)
{
Treelist。添加(新narytree(的程度));
}
*
foreach(本。树形对象tmpobj)
{
tmpobj =新narytree(的程度);
}
* /
}
只对叶节点,叶节点进入空节点,并返回叶节点关键字引用。
公共虚拟对象DetachKey()
{
如果(!IsLeaf())
抛出新的异常(我:这个节点必须是一个叶子节点)!;
对象结果= this.key; / /存储该叶节点临时
这个键= null;
这种树形= null;
返回结果;
}
如果节点节点必须是空的且具有相同的度,则要连接到指定节点树的子树,否则抛出异常。
公共虚拟无效attachsubtree(个数,narytree _narytree)
{
如果(this.isempty())
抛出新的异常():它不能是空树!;
如果(!(这num-1 { }。IsEmpty)(this.degree = _narytree。度)|!)
抛出异常(我:这{·}必须是空的,他们应该有!)
这num-1 } = { _narytree;
}
只针对非空树定义,将它从给定树删除,甚至是空树,并返回到相同的级别,删除子树引用。
公共虚拟NaryTree DetachSubtree(个数)
{
如果(IsEmpty())
抛出新的异常():它不能是空的!;
narytree tmptree =这;
((NaryTree)这num-1 } {关键= null);
((NaryTree)这num-1 } { TreeList = null);
返回此;
}
}
}