public static void Main(string[] args) { Treap treap = new Treap(); treap.Merge(ref treap.root, treap.root, new Node(1)); treap.Merge(ref treap.root, treap.root, new Node(2)); treap.Merge(ref treap.root, treap.root, new Node(3)); treap.Merge(ref treap.root, treap.root, new Node(4)); Treap left = new Treap(); Treap right = new Treap(); treap.Split(treap.root, ref left.root, ref right.root, 2); treap.Merge(ref treap.root, right.root, left.root); treap.Read(treap.root); }