1 KiB
1 KiB
title | date | draft | description | tags | categories | series | favorite | disable_feed | graphviz | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Treap | 2024-07-20T14:12:27+01:00 | false | A simpler BST |
|
|
|
false | false | true |
The Treap is a mix between a Binary Search Tree and a Heap.
Like a Binary Search Tree, it keeps an ordered set of keys in the shape of a tree, allowing for binary search traversal.
Like a Heap, it keeps associates each node with a priority, making sure that a parent's priority is always higher than any of its children.
What does it do?
By randomizing the priority value of each key at insertion time, we ensure a high likelihook that the tree stays roughly balanced, avoiding degenerating to unbalanced O(N) height.
Here's a sample tree created by inserting integers from 0 to 250 into the tree:
{{< graphviz file="treap.gv" />}}