public void AddSubtree(Tree subtree) { subtrees.Add(subtree); }
public static void BreadthFirstTraversal(Tree tree) { Queue<ITree> queue = new Queue<ITree>(); queue.Enqueue(tree); while (queue.Count > 0) { var t = queue.Dequeue(); Console.WriteLine(t.Key); for (int i = 0; i < t.Degree; i++) { var subtree = t.GetSubtree(i); queue.Enqueue(subtree); } } }