0
내 BST에는 노드가 하나만 있습니다. 그 노드를 지우는 코드를 작성했지만 여전히 거기에 있습니다. 마치 갱신되지 않은 것처럼 ... 업데이트되었습니다. 여기에 간단한 코드가 있습니다. 단지 케이스를 테스트하는 것입니다.BST에서 유일한 노드 삭제
void Delete(BSTree* tree, int& key)
{
if (key == tree->key)
tree=NULL;
}
그리고 BSTree 클래스에는 parrent 파트가 없습니다. 그냥 값과 왼쪽 및 오른쪽 포인터. 내 코드에 어떤 문제가 있습니까? 고맙습니다!
정말 고마워요! 그것은 작동합니다 :) –
그리고 한 가지 더, 나는 나무를 표시하는 코드가 있고 만약 그것이 NULL이라면 나는 << cout을 할 것입니다; 하지만 그것은 마치 ... 빈 트리가 아닌 것입니까? –
그것은 당신의 나무에'NULL '이 무엇을 의미하는지에 달려 있습니다. 당신의 디스플레이 기능에서, 당신은 실제로 그것을 표시하기 전에'NULL'에서 멈출 것입니다 (당신은 그것을 처리하려고 시도하기 전에 멈추고 있습니다, 그렇지 않으면 충돌 할 것입니다). – pickypg