Treap's node |
|
Erase element |
|
Just recursive print of a tree |
|
Insert element |
|
Commands: |
|
After each command, program prints treap |
|
We merge 2 trees into one. |
|
We split current tree into 2 trees with value: |
Treap’s node Treap is a binary tree by value and heap by priority
Erase element
Split all nodes with values less into left, Split all nodes with values greater into right. Merge left, right
Insert element
Split current tree with a value into left, right, Insert new node into the middle Merge left, node, right into root
Commands: + value to add value into treap - value to erase all nodes with value
>>> root = interact_treap(None, "+1")
>>> inorder(root)
1,
>>> root = interact_treap(root, "+3 +5 +17 +19 +2 +16 +4 +0")
>>> inorder(root)
0,1,2,3,4,5,16,17,19,
>>> root = interact_treap(root, "+4 +4 +4")
>>> inorder(root)
0,1,2,3,4,4,4,4,5,16,17,19,
>>> root = interact_treap(root, "-0")
>>> inorder(root)
1,2,3,4,4,4,4,5,16,17,19,
>>> root = interact_treap(root, "-4")
>>> inorder(root)
1,2,3,5,16,17,19,
>>> root = interact_treap(root, "=0")
Unknown command
After each command, program prints treap