C++로 이진탐색트리 구현중인데
Node* Node::Add(Node** Root, int _ID)
{
*this = *(new Node);
ID = _ID;
Node *pPreNode, *pTmpNode;
pPreNode = NULL;
pTmpNode = *Root;
while (pTmpNode != NULL)
{
if ( ID == pTmpNode->ID)
return;
pPreNode = pTmpNode;
if (ID < pTmpNode->ID)
pTmpNode = pTmpNode->Left;
else
pTmpNode = pTmpNode->Right;
}
if (pPreNode != NULL)
{
if( ID < pPreNode->ID )
pPreNode->Left = this;
else if( ID > pPreNode->ID )
pPreNode->Right = this;
else
ProgramError(0);
}
else
*Root = this;
}
위에 굵은 글씨부분 저렇게 해도 되는건가?
노드 생성할때는
Node* pNode = pNode->Add(Root, 0001);
이런식으로 하려고
빨간밑줄은 안쳐지는데 지금 여기저기 하다말다 해서 부분적으로 테스트하기가 좀 그렇네.. 경험자 형들 헬프좀
헐 뭐 이뭐병스러운 코드냐. 문법적으로도 옳지 않고, 또 꼭 저래야할 필요가 있나?
ㄴ음 어쨋든 제대로된 방법은 아니라는거지 형?
뭐 정확히 말해서 문법적으로 틀린건 아닌데, 추천하고 싶지는 않음.
ㄴ나도 저런 편법쓰면 찜찜하기도 하고 교수한테 까일거같기도 하고... 다른 방법을 찾아봐야겠네
아이런 미친짓이었네 ㅋㅋ 시발 쪽팔리게