我在C中实现了一个红黑树。在C ++地图中,可以提供一个自定义比较,它只执行操作值1<值2。此操作返回true或false但是如何在没有比较操作的情况下实现树?我希望我的比较函数只返回1或0而没有任何==运算符。我尝试在stl中读取它但是代码是不可读的,尽管我有C ++经验。
完整代码不是必需的,因为它与每个其他树实现的代码相同。目前有以下比较功能:
int cmp(void *key1, void *key2){
if(*(int*)key1 < *(int*)key2){
return 1;
}else if(*(int*)key1 > *(int*)key2){
return -1;
}else{
return 0;
}
}
我想要一个像这样的比较函数:
int cmp(void *key1, void *key2){
if(*(int*)key1 < *(int*)key2){
return 1;
}else{
return 0;
}
}
我不明白搜索如何使用此比较功能,因为找到节点时没有停止条件。