A skip list is a probabilistic data structure for storing and retrieving sorted data.
A tree is a widely-used data structure that emulates a hierarchical tree-like structure with a set of linked nodes.
"In a single thread world is different you can use a sorted set a binary tree or your custom data structure that would perform better than concurrent skip-lists"
from question "Java: what is the overhead of using ConcurrentSkipList* when no concurrency is needed?"
"So as you can see the random binary search tree was rather a lot better than the skip-lists"
from question ".net collection for fast insert/delete"