public TileTree() { Nodes = new List<TileTree>(); Head = null; Value = null; }
public void Clear() { foreach (TileTree tt in Nodes) { tt.Clear(); } Head = null; Value = null; }
private static void RecursiveBuildTileTree(Dictionary<Tile, Tile> nextParent, TileTree tree) { if (nextParent.Count == 0) return; Queue<Tile> Remove = new Queue<Tile>(); foreach (Tile t in nextParent.Keys) { if (nextParent[t] == tree.Value) { TileTree tt = new TileTree(); tt.Value = t; tt.Head = tree; tree.Nodes.Add(tt); Remove.Enqueue(t); } } while (Remove.Count > 0) nextParent.Remove(Remove.Dequeue()); foreach (TileTree tt in tree.Nodes) { RecursiveBuildTileTree(nextParent, tt); } }