/// <summary>Clones the AVL tree.</summary> /// <returns>A clone of the AVL tree.</returns> /// <runtime>θ(n)</runtime> public AvlTreeLinked <T> Clone() { // Note: this has room for optimization AvlTreeLinked <T> clone = new AvlTreeLinked <T>(_compare); Stepper(x => clone.Add(x)); return(clone); }
/// <summary>This constructor if for cloning purposes.</summary> /// <param name="tree">The tree to clone.</param> internal AvlTreeLinked(AvlTreeLinked <T, Compare> tree) {
/// <summary>This constructor if for cloning purposes.</summary> /// <param name="tree">The tree to clone.</param> internal AvlTreeLinked(AvlTreeLinked <T> tree) { _root = tree._root?.Clone(); _count = tree._count; _compare = tree._compare; }