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); }
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); }
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); } }