Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 프로그램에서 delete 키워드를 사용하여 이진 트리 삭제

<시간/>

이 튜토리얼에서는 delete 키워드를 사용하여 바이너리 트리를 삭제하는 방법을 배울 것입니다.

이진을 삭제하기 위해 소멸자 멤버 함수를 사용할 것입니다. 소멸자 멤버 함수는 객체가 범위를 벗어나거나 삭제를 호출하여 소멸될 때 자동으로 호출됩니다.

소멸자 멤버 함수는 물결표(~)가 있는 클래스 이름을 가집니다. 그 전에.

문제를 해결하는 단계를 살펴보겠습니다.

  • Node라는 클래스를 작성하십시오.

  • 노드에 대한 데이터를 받는 생성자 함수를 작성하십시오.

  • 소멸자 함수를 작성하십시오.

    • 왼쪽 노드를 삭제합니다.

    • 오른쪽 노드를 삭제합니다.

    • 현재 노드 데이터를 인쇄합니다.

  • 더미 데이터로 바이너리 트리를 초기화합니다.

  • 루트 삭제를 사용하여 바이너리 트레스를 삭제합니다. 성명서.

#include <bits/stdc++.h>
using namespace std;
class Node {
   public:
   int data;
   Node* left;
   Node* right;
   // constructor
   Node(int data) {
      this->data = data;
      this->left = NULL;
      this->right = NULL;
   }
   // destructor
   ~Node() {
      // deleting the left and right pointers
      delete left;
      delete right;
      // printing node data
      cout << "Deleted node with data " << this->data << endl;
   }
};
int main() {
   Node* root = new Node(1);
   root->left = new Node(2);
   root->right = new Node(3);
   root->left->left = new Node(4);
   root->left->right = new Node(5);
   root->right->left = new Node(6);
   root->right->right = new Node(7);
   // deleting the entire tree using destructure function
   delete root;
   return 0;
}

출력

위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Deleted node with data 4
Deleted node with data 5
Deleted node with data 2
Deleted node with data 6
Deleted node with data 7
Deleted node with data 3
Deleted node with data 1

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.