선생님이 클래스 웹 사이트에 다음 코드를 게시했습니다. 나는 그 일을 이해하지 못한다. 누군가가 정교 할 수 있다면, 좋을 것입니다. 한 가지 더, 왜 그녀는 쌍을 반환 값으로 사용합니까, bool만으로는 충분하지 않습니까?이진 검색 트리에 삽입
이 여기에 코드입니다 :
이template <class T>
std::pair<BST<T>::iterator, bool> BST<T>::insert(const T& val) {
node<T>* t = root, *parent = null;
while (t) {
if (t->val == val)
//return std::pair<BST<T>::iterator, bool>(iterator(t, this), false);
return std::make_pair(iterator(t, this), false); // stl convenience function
parent = t;
if (t->val > val) t = t->left;
else if (t->val < val) t = t->right;
}
node<T>* newNode = new node<T>(val); // (1) allocate memory
newNode->parent = parent; // (2) link child to parent
//(3) link parent to child
if (!parent) root = newNode;
else if (parent->val > val) parent->left = newNode;
else parent->right = newNode;
return std::make_pair(iterator(newNode, this), true);
}
정말 고마워요. 나는 그것에 지금 아주 명확하다! –