public void InsertBalancedTree(BalancedTree <T> tree) { List <T> list = new List <T>(); ConvertToList(tree.Root, ref list); foreach (var item in list) { this.Root = Insert(this.Root, item); } }
public BalancedTree <T> CopyBalancedTree() { BalancedTree <T> newTree = new BalancedTree <T>(); var nodesList = this.GetPreOrderList(); foreach (var x in nodesList) { newTree.Root = newTree.Insert(newTree.Root, x); } return(newTree); }
public bool Equals(BalancedTree <T> tree) { if (tree == null) { return(false); } if (this == tree) { return(true); } var thisListShape = this.GetPreOrderList(); var otherListShape = tree.GetPreOrderList(); return(thisListShape.SequenceEqual(otherListShape)); }
public BalancedTree <T> DeleteEvenElement() { if (typeof(T) != typeof(int)) { throw new Exception("Unsupported operation"); } var nodesList = new List <T>(); ConvertToList(this.Root, ref nodesList); var toDelete = nodesList.Where(x => (int)Convert.ChangeType(x, typeof(int)) % 2 == 1); var newList = new BalancedTree <T>(); foreach (var x in toDelete) { newList.Root = newList.Insert(newList.Root, x); } return(newList); }
public bool EqualsToTree(BalancedTree <T> tree) { return(EqualsToTreeUtils(this.Root, tree.Root)); }