У них есть сходства, но главное отличие состоит в том, что двоичное дерево поиска разработано для поддержки эффективного поиска элемента или «ключа».
Бинарное дерево поиска, подобно двусвязному списку, указывает на два других элемента в структуре. Однако при добавлении элементов в структуру, а не просто добавлении их в конец списка, двоичное дерево реорганизуется таким образом, чтобы элементы, связанные с «левым» узлом, были меньше текущего узла, а элементы - «правым» узел больше текущего узла.
В простой реализации новый элемент сравнивается с первым элементом структуры (корнем дерева). Если оно меньше, берется «левая» ветвь, в противном случае проверяется «правая» ветвь. Это продолжается для каждого узла, пока ветвь не будет найдена пустой; новый элемент заполняет эту позицию.
При таком простом подходе, если элементы добавляются по порядку, вы получаете связанный список (с той же производительностью). Существуют разные алгоритмы для поддержания некоторой меры баланса в дереве путем перестановки узлов. Например, деревья AVL делают большую часть работы, чтобы сохранить дерево максимально сбалансированным, обеспечивая лучшее время поиска. Красно-черные деревья не поддерживают сбалансированное дерево, что приводит к немного более медленному поиску, но в среднем выполняет меньше работы при вставке или удалении ключей.