我一直在研究树木几天,我对它们的分类方式感到有些困惑。基本节点很简单:
template < typename TYPE >
struct Node {
TYPE Data;
Node < TYPE > * Left;
Node < TYPE > * Right;
};
在排序方面,我理解这是一个简单的比较,需要一个节点的数据(左边较低,右边较高),我可以看到它如何对整数类型(int,double,float,字符)。令我困惑的是如何使用用户定义的类型和对象完成此操作。究竟是什么/应该比较什么?这只是一个案例答案,还是可以使用一般方法?
任何有助于清除这一点的信息都将不胜感激。
答案 0 :(得分:0)
我认为不是这个问题的真实答案。
究竟是什么/应该比较什么?
这取决于数据类型!如果您有一个字符串,您可能希望按字母顺序对它们进行排序。如果字符串表示您可能希望按重要性排序的角色。如果有颜色怎么办?您可以按色调或亮度排序。 不是通用答案。
如果某些东西完全不具有可比性(或者比较没有意义,想象一下你是在比较代表服装的对象),也许你不应该使用排序树!