Кажуть, що два бінарних дерева пошуку є лінійно еквівалентними, коли вони погоджуються в їх порядку замовлення. Наступна теорема пояснює, чому обертання дерев настільки принципові:
Нехай A і B - двійкові дерева пошуку. Тоді A і B є лінійно еквівалентними тоді і тільки тоді, коли вони з'єднані послідовністю обертів дерев.
Я помітив цей результат, коли давно вперше дізнався про структури даних і хотів глибше зрозуміти особливості статусу обертання дерев.
Доказ простий та інтуїтивно зрозумілий: поверніть найменший елемент до положення кореня вздовж лівого хребта. За інваріантним порядком це перегруповане дерево не може мати лівого піддерева. Тепер повторіть праворучне піддерево. Результат - це нормальна форма для тестування лінійної еквівалентності.
Хоча це основна теорема, я ніколи не стикався з нею в літературі. Я дуже вдячний для наступного разу, коли мені потрібно використовувати цей результат.
(Бонусний тизер мозку: який найкращий алгоритм пошуку найкоротшої послідовності обертів дерев, які з'єднують два лінійно еквівалентні двійкові дерева пошуку?)