The inset below illustrates the behaviour of binary search trees. The Art of Computer Programming”: Searching and Sorting Algorithms. A diochromatic framework for balanced trees. 2002Insert and Delete animations have been enhanced with option binary tree visuals for the Split and Join operations on splay trees.
For example, you do not have to wait for the current Insert animation to be completed in order to insert the next key. A series of fast Inserts will quickly build a large tree with pseudo-random keys. All AVL and Splay methods used in the applet have been posted. I was able to reproduce the problem on a Redhat 7. Monge from Cal State successfully tested the applet with Mozilla 1. More snippets of the source code posted. The Thinker does a much better job now.
If two rotations are pending, the numbers on the top of the flashing arrows will indicate the rotation order. Decreasing the animation speed will make the “thinking” pause longer. If you get impatient, click anywhere on the panel to proceed to the next iteration. Using them in AVL or Red-Black mode will almost always break the rules of the current algorithm. The result is a good olde BST. Click on AVL button to activate the AVL mode.
Red dot in the upper right corner of the icon indicates the active state. Using S or R will turn the AVL mode off, since a “forced” rotation interferes with the AVL rules. Both manual and automatic AVL rotations presented here conform to this definition – the selected node will move down and to the side. The panel is now 100 pixels wider to accommodate the unruly branches. Changing the shape and using the size tool can also help to keep the nodes inside the window. The speed tool has been modified.
Up and Down arrows switch between the fastest and slowest animation modes. Click on the left side of the icon, and the selected node will rotate to the left. Clicking on the right side will rotate the selected node to the right. Balance factors can be displayed only in AVL mode. New animations: swapping data before deletion and discarding deleted nodes.