可以将自平衡二叉搜索树应用于对象吗?

时间:2012-03-16 09:05:36

标签: sorting language-agnostic tree adt

我一直在研究树木几天,我对它们的分类方式感到有些困惑。基本节点很简单:

template < typename TYPE >
struct Node {

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

};

在排序方面,我理解这是一个简单的比较,需要一个节点的数据(左边较低,右边较高),我可以看到它如何对整数类型(int,double,float,字符)。令我困惑的是如何使用用户定义的类型和对象完成此操作。究竟是什么/应该比较什么?这只是一个案例答案,还是可以使用一般方法?

任何有助于清除这一点的信息都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为是这个问题的真实答案。

  

究竟是什么/应该比较什么?

这取决于数据类型!如果您有一个字符串,您可能希望按字母顺序对它们进行排序。如果字符串表示您可能希望按重要性排序的角色。如果有颜色怎么办?您可以按色调或亮度排序。 不是通用答案

如果某些东西完全不具有可比性(或者比较没有意义,想象一下你是在比较代表服装的对象),也许你不应该使用排序树