아래 코드는 노드를 트리의 올바른 위치에 삽입하는 함수입니다. 내가 이해하지 못하는 것은 부모 노드가 실제로 나타내는 것입니다. 그것이 root -> left -> parent = root -> left
이라고 할 때, 그것은 무엇을 의미합니까? 그게 뿌리의 왼쪽 부모의 설정 자체가 아닌가요? 루트의 왼쪽 자식 부모가 루트가되고 왼쪽 자식 자체가 아니기 때문에 root -> left -> parent = root
이 아니어야합니까? 부모 노드를 명확하게 설명해 주시겠습니까? 고맙습니다.이진 탐색 트리에서 상위 노드를 이해하는 데 도움이 필요합니다.
Node * insert(Node *root, int item) {
if (root == NULL)
return newNode(item);
if (item <= root -> info)
if (root -> left == NULL) {
root -> left = newNode(item);
root -> left -> parent = root -> left; //**line of interest**
}
else
insert(root -> left, item);
else
if (root -> right == NULL) {
root -> right = newNode(item);
root -> right -> parent = root -> right;
}
else
insert(root -> right, item);
return root;
}
가 제대로 작동이 코드인가? 귀하의 가정은 옳은 것 같습니다 : root-> left-> parent = root; 명령이어야합니다. –
@FernandoAires'root-> left-> parent'는'root' 자체가 아니겠습니까? – 0x499602D2
그건 정확히 내가 쓴거야 ... –