Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 /// <summary>This constructor if for cloning purposes.</summary>
 /// <param name="tree">The tree to clone.</param>
 internal AvlTreeLinked(AvlTreeLinked <T, Compare> tree)
 {
Beispiel #3
0
 /// <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;
 }