Elledan - like said, it's a data structures thing. As I said earlier, it's a binary tree (each node has only two children) with the condition that all descendents that are smaller than the parent node fall to the left and all larger to the right when the tree is made. When the tree is searched, the first node (the root node) is compared with the search value - if the value being searched for is smaller than the root node, the search continues down the left side of the tree. It gets to the next node (which by definition is smaller than the previous node, the root node in this case). It is then compared to this current node and lets say it is larger than the current node. It then goes to the next node to the right of the current node because it was larger. This continues until the search finds what it's looking for or you run out of nodes. This can be done using linked lists, each node having a reference to "left" and "right"...