我想了解递归。 我理解愚蠢的数学例子,但我不知道它的本质。有人可以解释我这种递归吗?
我有1个例,我不明白,它是如何工作的:
TREE-ROOT-INSERT(x, z)
if x = NIL
return z
if z.key < x.key
x.left = TREE-ROOT-INSERT(x.left, z)
return RIGHT-ROTATE(x)
else
x.right = TREE-ROOT-INSERT(x.right, z)
return LEFT-ROTATE(x)
我知道这个代码做什么: 首先在BST插入一个节点,然后使新节点成为了每一次旋转根。
但在我脑海中分析代码,我想它插入节点,它必须去,然后只是1时间它旋转树。
树每次都可以旋转吗?
这可能是一个更好的例子http://stackoverflow.com/questions/6323656/multiple-avl-tree-rotation?rq=1 –
此外这个例子*插入15 *表示可能需要多个轮换https://jriera.webs.ull.es/Docencia/avl_handout.pdf –