📄 generaltree.cs
字号:
namespace Opus6
{
using System;
[Version("$Id: GeneralTree.cs,v 1.4 2001/10/28 19:50:09 brpreiss Exp $"), Copyright("Copyright (c) 2001 by Bruno R. Preiss, P.Eng.")]
public class GeneralTree : AbstractTree
{
public GeneralTree(object key)
{
this.key = key;
this.degree = 0;
this.list = new LinkedList();
}
public void AttachSubtree(GeneralTree t)
{
this.list.Append(t);
this.degree++;
}
public override int CompareTo(object arg)
{
throw new MethodNotImplementedException();
}
public GeneralTree DetachSubtree(GeneralTree t)
{
this.list.Extract(t);
this.degree--;
return t;
}
public override Tree GetSubtree(int i)
{
if ((i < 0) || (i >= this.degree))
{
throw new IndexOutOfRangeException();
}
LinkedList.Element element1 = this.list.Head;
for (int num1 = 0; num1 < i; num1++)
{
element1 = element1.Next;
}
return (GeneralTree) element1.Datum;
}
public static void Main()
{
GeneralTree tree1 = new GeneralTree('A');
tree1.AttachSubtree(new GeneralTree('B'));
tree1.AttachSubtree(new GeneralTree('C'));
tree1.AttachSubtree(new GeneralTree('D'));
tree1.AttachSubtree(new GeneralTree('E'));
AbstractTree.TestTree(tree1);
}
public override void Purge()
{
this.list.Purge();
this.degree = 0;
}
public override int Degree
{
get
{
return this.degree;
}
}
public override bool IsEmpty
{
get
{
return false;
}
}
public override bool IsLeaf
{
get
{
return (this.degree == 0);
}
}
public override object Key
{
get
{
return this.key;
}
}
protected int degree;
protected object key;
protected LinkedList list;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -