using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
public class Employee {
private int _id = 0;
private string _name = null;
public Employee(int id, string name) {
this._id = id;
this._name = name;
}
public int Id {
get { return this._id; }
}
public string Name {
get { return this._name; }
}
public override string ToString() {
return this._name;
}
}
public class TreeNode {
private T _nodeData;
private ArrayList _childNodes;
public TreeNode(T nodeData) {
this._nodeData = nodeData;
this._childNodes = new ArrayList();
}
public T Data {
get { return this._nodeData; }
}
public TreeNode[] Children {
get { return (TreeNode[])this._childNodes.ToArray(typeof(TreeNode)); }
}
public TreeNode this[int index] {
get { return (TreeNode)this._childNodes[index]; }
}
public TreeNode AddChild(T nodeData) {
TreeNode newNode = new TreeNode(nodeData);
this._childNodes.Add(newNode);
return newNode;
}
public override string ToString() {
return this._nodeData.ToString();
}
}
class Program {
static void Main(string[] args) {
TreeNode rootNode = new TreeNode(new Employee(111, "H"));
TreeNode child1 = rootNode.AddChild(new Employee(222, "B"));
rootNode.AddChild(new Employee(333, "T"));
child1.AddChild(new Employee(444, "B"));
child1.AddChild(new Employee(555, "M"));
}
}