using System.Collections.Generic;
public static void Main()
var root = new Node("A");
var b = root.AddChild("B");
var d = root.AddChild("D");
var answer = new List<string>();
answer = root.BreadthFirstSearch(answer);
for(var i = 0; i < answer.Count; i++)
Console.Write(answer[i]);
if (i < answer.Count - 1) Console.Write(", ");
private List<Node> _children;
this._children = new List<Node>();
public Node AddChild(string name)
var newNode = new Node(name);
this._children.Add(newNode);
public List<string> BreadthFirstSearch(List<string> result)
var queue = new Queue<Node>();
var node = queue.Dequeue();
foreach (var child in node._children)