public void Add(T item) { BinFa <T> addFa = this; BinFa <T> newFa = new BinFa <T>(item); int ii = item.CompareTo(addFa.Root.Core); //other = addFa; Console.WriteLine(addFa.Root.Core); if (ii < 0) { if (addFa.Next(false) == null) { newFa.Insert(false, item); addFa.Add(item); } else { addFa = addFa.Next(false); } } else if (ii > 0) { if (addFa.Next(true) == null) { newFa.Insert(true, item); addFa.Add(item); } else { addFa = addFa.Next(false); } } }
public void Print() { BinFa <T> printFa = this; BinFa <T> otherFa; if (printFa == null) { return; } Console.WriteLine(Root.Core); otherFa = printFa; if (printFa.Root.Left != null) { printFa = printFa.Next(false); printFa.Print(); } printFa = otherFa; if (printFa.Root.Right != null) { printFa = printFa.Next(true); printFa.Print(); } }