Пример #1
0
        private node <T> insert(node <T> temp, node <T> New)
        {
            if (temp == null)
            {
                return(New);
            }
            if (temp < New)
            {
                temp.right = insert(temp.right, New);
                if (temp.right.value() > temp.value())
                {
                    temp.left_rotation(ref temp);
                }
            }
            else if (temp > New)
            {
                temp.left = insert(temp.left, New);
                if (temp.left.value() > temp.value())
                {
                    temp.right_rotation(ref temp);
                }
            }

            return(temp);
        }
Пример #2
0
        private void print(node <T> temp) // in-order method
        {
            if (temp == null)
            {
                return;
            }
            Console.WriteLine("key is : " + temp.key + " , value is : " + temp.value());
            print(temp.left);

            print(temp.right);
        }
Пример #3
0
 private void copy(node <T> root, ref node <T> res)
 {
     if (root == null)
     {
         res = null;
     }
     else
     {
         res = new node <T>(root.key, root.value());
         copy(root.left, ref res.left);
         copy(root.right, ref res.right);
     }
 }