Інтуїтивно "збалансовані дерева" повинні бути деревами, де ліві та праві піддерева у кожному вузлі повинні мати "приблизно однакову" кількість вузлів.
Звичайно, коли ми говоримо про те, що червоно-чорні дерева * (див. Визначення в кінці) є врівноваженими, ми фактично маємо на увазі, що вони збалансовані по висоті і в цьому сенсі вони врівноважені.
Припустимо, ми спробуємо формалізувати описану вище інтуїцію так:
Визначення: Двійкове дерево називається збалансованим, з , якщо для кожного вузла нерівність
утримує, і для кожного є якийсь вузол, для якого вищевказаний вислів не працює. - кількість вузлів у лівому під дереві та- кількість вузлів під деревом з як кореня (включаючи корінь).
Я вважаю, що в деякій літературі на цю тему це називають деревами , які мають вагу .
Можна показати, що якщо двійкове дерево з вузлами врівноважене (для постійної ), то висота дерева дорівнює , таким чином підтримуючи приємний пошук властивості.
Отже, питання:
Чи є такі такі, що кожне досить велике червоно-чорне дерево врівноважене?
Визначення використовуваних нами червоно-чорних дерев (від вступу до алгоритмів Кормена та ін):
Двійкове дерево пошуку, де кожен вузол забарвлений червоним або чорним кольором і
- Корінь чорний
- Усі вузли NULL чорні
- Якщо вузол червоний, то обидва його діти чорніють.
- Для кожного вузла всі шляхи від цього вузла до нащадкових NULL-вузлів мають однакову кількість чорних вузлів.
Примітка: ми не рахуємо NULL-вузлів у визначенні -балансованому вище. (Хоча я вважаю, що це не має значення)