在下面这段二叉搜索树的代码中:
我有点困惑这个行是什么意思,可能需要更多上下文才能理解。
template <class TKey>
class bst<TKey>::node *bst<TKey>::insert(node *T, TKey &key)
{
if (T == NULL) {
T = new node;
T->key = key;
} else if (T->key == key) {
cout << "key " << key << " already in tree" << endl;
} else {
int dir = T->key < key;
T->link[dir] = insert(T->link[dir], key);
}
return T;
}
我有点困惑这个行是什么意思,可能需要更多上下文才能理解。
int dir = T->key < key;
正在进行的操作是什么。我可以理解“int dir = T->key”,尽管当然这没有意义,但我以前从未见过“<”运算符以这种方式使用。有任何线索吗?
0
或1
。例如:int a = 1 == 0;
将在a
中赋值为0
。同样,int a = a == a;
将在a
中赋值为1
。所有条件运算符都以相同的方式工作。 - shashwat