/// <summary>
        /// Moves the <see cref="BraidedTreeNode{TKey, TValue}"/> towards the root of the tree
        /// structure.</summary>
        /// <remarks><para>
        /// <b>BubbleUp</b> recursively rotates the current instance upward until its <see
        /// cref="Priority"/> is not less than that of its <see cref="Parent"/>.
        /// </para><para>
        /// <b>BubbleDown</b> implements the <c>bubbleDown</c> algorithm by Michael J. Laszlo,
        /// <em>Computational Geometry and Computer Graphics in C++</em>, Prentice Hall 1996, p.59.
        /// </para></remarks>

        internal void BubbleUp()
        {
            if (_priority >= _parent._priority)
            {
                return;
            }

            if (_parent._left == this)
            {
                _parent.RotateRight();
            }
            else
            {
                _parent.RotateLeft();
            }

            BubbleUp();
        }