public void Insert(OrbitPair orb) { // 1. If the tree is empty, return a new, single node if (tree == null) { tree.Add(orb.Parent, new List <string> { orb.Child }); } // 2. Otherwise, recur down the tree InsertRec(orb.Parent, orb.Child); }
public void Insert(OrbitPair op) { if (Bodies.Where(c => c.Name == op.Child).Count() == 1 && Bodies.Where(c => c.Name == op.Parent).Count() == 1) { SolarBody child = Bodies.Single(s => s.Name == op.Child); SolarBody parent = Bodies.Single(s => s.Name == op.Parent); child.Parent = op.Parent; parent.Children.Add(child); } else if (Bodies.Where(c => c.Name == op.Child).Count() == 1) { SolarBody child = Bodies.Single(s => s.Name == op.Child); SolarBody parent = new SolarBody(op.Parent); child.Parent = op.Parent; parent.Children.Add(child); Bodies.Add(parent); } else if (Bodies.Where(c => c.Name == op.Parent).Count() == 1) { SolarBody parent = Bodies.Single(s => s.Name == op.Parent); SolarBody child = new SolarBody(op.Child, op.Parent); parent.Children.Add(child); Bodies.Add(child); } else { SolarBody parent = new SolarBody(op.Parent); SolarBody child = new SolarBody(op.Child, op.Parent); parent.Children.Add(child); Bodies.Add(child); Bodies.Add(parent); } }