예제 #1
0
파일: AvlTree.cs 프로젝트: Thaina/Towel
        /// <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);
        }
예제 #2
0
 /// <summary>This constructor if for cloning purposes.</summary>
 /// <param name="tree">The tree to clone.</param>
 internal AvlTreeLinked(AvlTreeLinked <T, Compare> tree)
 {
예제 #3
0
파일: AvlTree.cs 프로젝트: Thaina/Towel
 /// <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;
 }