Пример #1
0
 // Задание 1: рекурсивный метод проверяет поддерево на сбалансированность
 public bool Balanced()
 {
     // выход из рекурсии. Случай листа(нет потомков)
     if (Left == null && Right == null)
     {
         return(true);
     }
     // случай сучка(есть только правый потомок)
     if (Left == null && Right != null)
     {
         return(Right.Balanced());
     }
     // случай сучка(есть только левый потомок)
     if (Left != null && Right == null)
     {
         return(Left.Balanced());
     }
     // случай сучка(есть оба потомка)
     if (Left != null && Right != null)
     {
         return((Left.Height() == Right.Height()) && Left.Balanced() && Right.Balanced());
     }
     // сюда программа дойти не может, поскольку разобраны всевозможные случаи
     return(true);
 }