Я хотел наглядно нарисовать пошаговый процесс вращения бинарного дерева. Взято из Рэя Вендерлиха — Структуры данных и алгоритмы в Swift, я почувствовал, что в некоторых диаграммах есть небольшой пробел, поэтому я решил их заполнить!
private func leftRotate(_ node: AVLNode<Element>) -> AVLNode<Element> { let pivot = node.rightChild! node.rightChild = pivot.leftChild pivot.leftChild = node node.height = max(node.leftHeight, node.rightHeight) + 1 pivot.height = max(pivot.leftHeight, pivot.rightHeight) + 1 return pivot }
По сути, что происходит…