Пример #1
0
 public void insertHelper(int value, int idx, List <int> rightSmallerCounts,
                          int numSmallerAtInsertTime)
 {
     if (value < this.value)
     {
         leftSubtreeSize++;
         if (left == null)
         {
             left = new SpecialBST(value);
             rightSmallerCounts[idx] = numSmallerAtInsertTime;
         }
         else
         {
             left.insertHelper(value, idx, rightSmallerCounts,
                               numSmallerAtInsertTime);
         }
     }
     else
     {
         numSmallerAtInsertTime += leftSubtreeSize;
         if (value > this.value)
         {
             numSmallerAtInsertTime++;
         }
         if (right == null)
         {
             right = new SpecialBST(value);
             rightSmallerCounts[idx] = numSmallerAtInsertTime;
         }
         else
         {
             right.insertHelper(value, idx, rightSmallerCounts,
                                numSmallerAtInsertTime);
         }
     }
 }