我有一个细节想不通,为啥在这个地方可以用比较大小来实现
来源:5-4 二分搜索树的查找
_遥不可及_
2018-02-21
这个搜索中,key 不是str么,为啥这里可以比较大小?是根据ASCII转的么?或者是重载运算符了吗?
虽然bobo老师不让细扣语法,但还是很好奇这里是如何实现的。毕竟PPT演示都是用的数字,在这里突然杀出string有点懵
Value* search(Node* node, Key key){ if( node == NULL ) return NULL; if( key == node->key ) return &(node->value); else if( key < node->key ) return search( node->left , key ); else // key > node->key return search( node->right, key ); }
写回答
1回答
-
字符串之间的默认排序方式是字典序。这是一个通用的字符串比较大小的方式。你翻开一本字典,所有的单词是按照一个顺序排列的,这就是字典序。在一本字典里,排在前面的单词比排在后面的单词小。如果想了解更形式化的对“字典序”的定义,可以搜索学习一下,应该是很好理解的:)
近乎所有的语言,都会用字典序作为字符串之间的默认排序方式。当然,这只是字符串之间比较大小的一种方式。实际上,任意类型的两个变量之间进行大小比较,可以定义无数种方式。你当然也可以定义属于自己的比较方式:)
142018-02-22
相似问题