/// <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(); }