public void AddValueToTheTree(T newValue)
 {
     if (newValue.CompareTo(Value) <= 0)
     {
         if (LeftSon != null)
         {
             LeftSon.AddValueToTheTree(newValue);
         }
         else
         {
             LeftSon       = new Node <T>();
             LeftSon.Value = newValue;
         }
     }
     else
     {
         if (RightSon != null)
         {
             RightSon.AddValueToTheTree(newValue);
         }
         else
         {
             RightSon       = new Node <T>();
             RightSon.Value = newValue;
         }
     }
 }
 public void GetSortedArray(List <T> currentArray)
 {
     LeftSon?.GetSortedArray(currentArray);
     currentArray.Add(Value);
     RightSon?.GetSortedArray(currentArray);
 }