Exemplo n.º 1
0
 public cvor(int number)
 {
     this.dubina     = 0;
     this.leftChild  = null;
     this.rightChild = null;
     this.vrijednost = number;
 }
Exemplo n.º 2
0
 private int height(cvor cvor)
 {
     if (cvor == null)
     {
         return(-1);
     }
     return(cvor.Dubina);
 }
Exemplo n.º 3
0
 public cvor insert(cvor cvor, int element)
 {
     if (cvor == null)
     {
         cvor = new cvor(element);
     }
     else if (element < cvor.Vrijednost)
     {
         cvor.LeftChild = insert(cvor.LeftChild, element);
         if (height(cvor.LeftChild) - height(cvor.RightChild) == 2)
         {
             if (element < cvor.LeftChild.Vrijednost)
             {
                 cvor = RightRotation(cvor);
             }
             else
             {
                 cvor.LeftChild = leftRotation(cvor.LeftChild);
                 cvor           = RightRotation(cvor);
             }
         }
     }
     else if (element > cvor.Vrijednost)
     {
         cvor.RightChild = insert(cvor.RightChild, element);
         if (height(cvor.RightChild) - height(cvor.LeftChild) == 2)
         {
             if (element > cvor.RightChild.Vrijednost)
             {
                 cvor = leftRotation(cvor);
             }
             else
             {
                 cvor.RightChild = RightRotation(cvor.RightChild);
                 cvor            = leftRotation(cvor);
             }
         }
     }
     cvor.Dubina = Math.Max(height(cvor.LeftChild), height(cvor.RightChild)) + 1;
     return(cvor);
 }
Exemplo n.º 4
0
        private cvor leftRotation(cvor cvor)
        {
            cvor rightChild = cvor.RightChild;

            if (rightChild == null)
            {
                cvor.RightChild = null;
            }
            else
            {
                cvor.RightChild = rightChild.LeftChild;
            }
            if (rightChild != null)
            {
                rightChild.LeftChild = cvor;
                rightChild.Dubina    = Math.Max(height(rightChild.RightChild), height(cvor)) + 1;
            }
            cvor.Dubina = Math.Max(height(cvor.LeftChild), height(cvor.RightChild)) + 1;
            if (rightChild == null)
            {
                return(cvor);
            }
            return(rightChild);
        }
Exemplo n.º 5
0
 public void add(int data)
 {
     root = insert(root, data);
 }