Можно ли применить самобалансирующееся двоичное дерево поиска к объекту? - PullRequest
0 голосов
/ 16 марта 2012

Я изучал деревья в течение нескольких дней, и я немного озадачен тем, как они сортируются.Базовый узел достаточно прост:

template < typename TYPE >
struct Node {

    TYPE Data;
    Node < TYPE > * Left;
    Node < TYPE > * Right;

};

С точки зрения сортировки я понимаю, что это простое сравнение, включающее в себя данные узла (ниже слева, выше справа), и я вижу, какэто будет работать на целочисленных типах (int, double, float, char).Что меня смущает, так это то, как это делается с пользовательскими типами и объектами.Что именно / нужно сравнивать?Это просто индивидуальный ответ или есть общий метод, который можно использовать?

Любая информация, которая может помочь прояснить это в моей голове, будет принята с благодарностью.

1 Ответ

0 голосов
/ 16 марта 2012

Я думаю, что не верный ответ на этот вопрос.

Что именно / нужно сравнивать?

Это зависит оттип данных!Если у вас есть строка, вы можете отсортировать их в алфавитном порядке.Если строка представляет роль, вы можете отсортировать по важности.Что делать, если цвет?Вы можете сортировать по оттенку или яркости.Существует не универсальный ответ .

Если что-то совсем несопоставимо (или сравнение не имеет смысла, представьте, что вы сравниваете объекты, представляющие одежду), возможно, вы не следует использовать отсортированное дерево !

...