TGViewer
Уютное сообщество C# разработчиков Уютное сообщество C# разработчиков @cscharp · 2.26K subscribers
Post #178 2.19K
🌲 AVL-дерево в C#

AVL-дерево — это самобалансирующееся бинарное дерево поиска, в котором:

• Баланс-фактор (разница высот левого и правого поддерева) каждого узла равен -1, 0 или 1.

• При нарушении баланса выполняется ротация (левая, правая или двойные) для восстановления баланса.

Баланс-фактор (BF) узла вычисляется так:
BF = Height(Left) - Height(Right)

• BF = 0, 1 или -1 — дерево сбалансировано.
• BF > 1 — перегрузка слева.
• BF < -1 — перегрузка справа.

🤔 Что такое ротация в деревьях?


Ротация — это операция, которая переставляет узлы в бинарном дереве, изменяя их структуру без нарушения свойств дерева.

Когда высота левого и правого поддерева отличается более чем на 1, дерево становится разбалансированным. Это снижает эффективность операций поиска, вставки и удаления.

Виды ротаций в AVL-дереве:

1️⃣ Правое вращение

Применяется, когда перегрузка слева (BF > 1) и новый узел добавлен в левое поддерево левого потомка.

Простой пример:
    C
/
B
/
A

После правого вращения:
    B
/ \
A C


2️⃣Левое вращение

Применяется, когда перегрузка справа (BF < -1) и новый узел добавлен в правое поддерево правого потомка.

Пример:
A
\
B
\
C

После левого вращения:
  B
/ \
A C


3️⃣ Лево-правое вращение

Используется при перегрузке слева, если новый узел добавлен в правое поддерево левого потомка.

Сначала выполняется левое вращение для левого потомка.
Затем правое вращение для корня.

4️⃣ Право-левое вращение

Используется при перегрузке справа, если новый узел добавлен в левое поддерево правого потомка.

Сначала выполняется правое вращение для правого потомка.
Затем левое вращение для корня.
More from @cscharp
  1. Sep 21, 2026☄️ Вакансии по C# за неделю: 6️⃣ Senior .NET Developer REMOTE GLOBAL Senior · Remote 2️⃣ J…
  2. Sep 14, 2026C# Programming Автор: Patrick Felicia Год издания: 2024 #csharp #unity #en Скачать книгу
  3. Sep 14, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 1…
  4. Sep 14, 2026🔥 Вакансии по C# за неделю: 📥 Senior Fullstack Developer REDHR.RU Senior · Remote · ₽ 23…
  5. Sep 7, 2026🔔 Вакансии по C# за неделю: ⭐️ Full Stack Developer Life Data Lab Senior · Remote · $3 50…
  6. Sep 3, 2026C#. Алгоритмы и структуры данных Автор: Н. А. Тюкачев Год издания: 2021 #csharp #ds #ru Ск…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →