;;; Manually constructed tests for treaps. :;;;------------------------------------------------------------------------- :;;; Insertion and removal. : :;; Initial state. = ((((_ 110 _) 120 (_ 130 _)) 140 ((_ 150 _) 160 (_ 170 _))) 180 (((_ 190 _) 200 (_ 210 _)) 220 ((_ 230 _) 240 (_ 250 _)))) D : :;; Insertion. " 0xfff00000$ V+ 155k+ D V ) " 0xffd00000$ V+ 155k+ V:XYLA-TREAP INSERT right child V:XYLA-TREAP INSERT left child D V ) " 0xffa00000$ V+ 155k+ V:XYLA-TREAP INSERT right child V:XYLA-TREAP INSERT left child V:XYLA-TREAP INSERT right child V:XYLA-TREAP INSERT left child D V ) : :;; Removal. " V- 170k- D V ) " V- 220k- V:XYLA-TREAP REMOVE float left child V:XYLA-TREAP REMOVE float right child V:XYLA-TREAP REMOVE float left child D V ) " V- 180k- V:XYLA-TREAP REMOVE float left child V:XYLA-TREAP REMOVE float right child V:XYLA-TREAP REMOVE float left child V:XYLA-TREAP REMOVE float right child V:XYLA-TREAP REMOVE float left child D V ) : :;;;------------------------------------------------------------------------- :;;; Splitting and joining. : :;; With joining node. " V/ 200@p/ V:XYLA-TREAP SPLIT left child V:XYLA-TREAP SPLIT right child D V % D ) % D % V~ 0xfff00000$ 199k~ V:XYLA-TREAP JOIN mid float left (next right) V:XYLA-TREAP JOIN mid float right (next left) V:XYLA-TREAP JOIN mid float left (next right) V:XYLA-TREAP JOIN mid float right (next done) D V ) : :;; Without joining node. " V/ 195@p/ V:XYLA-TREAP SPLIT right child V:XYLA-TREAP SPLIT left child V:XYLA-TREAP SPLIT left child V:XYLA-TREAP SPLIT right child D V % D ) % D % V~ *k~ V:XYLA-TREAP JOIN stitch right edge V:XYLA-TREAP JOIN stitch left edge D V ) : :;;;----- That's all, folks -------------------------------------------------