1
이 질문은 이진 검색 트리와 관련이 있습니다. 루트가 만들어지면 여기에 내가 지금 여기트리에 노드를 추가하는 기능
struct _Node
{
_Node *Parent;
int Data;
_Node *Left;
_Node *Right;
};
을 사용하고 노드의 정의는 노드를 추가하는 함수의 정의입니다 ADDNODE 기능이 재귀 적 접근 방식을 기반으로
void AddNode(_Node *Incoming, _Node *currentNode)
{
if(!currentNode)
{
currentNode = Incoming;
}
else if(currentNode->Data >= Incoming->Data)
{
Incoming->Parent = currentNode;
AddNode(Incoming, currentNode->Left);
}
else if(currentNode->Data < Incoming->Data)
{
Incoming->Parent = currentNode;
AddNode(Incoming, currentNode->Right);
}
}
. 메인 코드는
_Node *Root= new _Node;
Root->Data = 50;
Root->Parent = nullptr;
Root->Left = nullptr;
Root->Right = nullptr;
_Node *Node2 = new _Node;
Node2->Data = 25;
Node2->Parent = nullptr;
Node2->Left = nullptr;
Node2->Right = nullptr;
_Node *Node3 = new _Node;
AddNode(Node2, Root);
문제입니다 : 내가 노드 추가 기능 나올 일단 나는 노드 2로 설정 왼쪽 또는 오른쪽 자식이 doesnot 그 루트 노드를 찾을 수 있습니다. 노드에 대한 포인터가 전달 될 때마다 나는 루트에 노드를 올바르게 추가해야한다고 설명했다. 이것은 일어나지 않습니다. 내가 실수하고있는 것을 이해하기 위해 여기서 나를 도울 수 있니?
OO 나의 하느님 나는 내가하고 있었던 그런 어리석은 실수를 매우 유감스럽게 생각한다. .. 나는 나를 그것을 하루라고 부르는 그 시간이라고 생각한다. 너의 도움에 감사한다. – virusrocks
안녕하세요,이 변화는 그래도 작동이 안되는. 실제로 이전과 같은 방식으로이 기능을 재정의하고 복사 붙여 넣기 오류가 발생했습니다. 여전히 작동하지 않습니다. – virusrocks
현재 노드 포인터를 참조로 전달하려고 시도합니다. 'void AddNode (_Node * Incoming, _Node * & currentNode)' – Gir