Вы можете найти реализацию на Java в википедии, что очень похоже на C # http://en.wikipedia.org/wiki/Binary_search_tree
Мы начинаем с корня:
Node root = m_root;
while (root != null) {
, затем посмотрим, будет ли значение меньше или большечем корень.
if (data < root.getData()) {
Теперь мы знаем, нужно ли нам проходить слева или справа.Логика слева и справа одинакова.Мы смотрим, если слот пуст, и если это так, мы помещаем значение в этот слот.
if (root.getLeft() == null) {
root.setLeft(new TreeNode(data, null, null));
return;
}
Если слот содержит значение, то мы устанавливаем этот слот как корневой и продолжаем процесс.
} else {
root = root.getLeft();
}