C++ 이진 검색 트리 소멸자

Ammar Ali 2023년10월12일
C++ 이진 검색 트리 소멸자

이 자습서에서는 C++에서 delete 키워드를 사용하여 이진 검색 트리에 대한 소멸자를 만드는 방법에 대해 설명합니다.

C++ 이진 검색 트리 소멸자

BST(Binary Search Tree)는 검색할 수 있는 정렬된 데이터를 저장하는 데이터 구조입니다. 이진 검색 트리는 데이터 센터 및 소프트웨어에서 사용됩니다.

이진 검색 트리는 노드로 구성되며 각 노드에는 두 개의 자식이 있습니다. 이진 트리를 만들 때 첫 번째 값은 루트 노드를 나타내고 다음 값은 루트 노드보다 크면 오른쪽에 배치됩니다. 그렇지 않으면 왼쪽에 배치됩니다.

다음 값이 오면 먼저 루트 노드와 비교해야 하고, 그런 다음 다른 자식 노드가 있으면 비교합니다.

이진 검색 트리의 각 노드는 키와 값으로 구성됩니다. 이진 검색 트리는 이미 정렬되어 있기 때문에 검색하기 쉽습니다.

C++에서 이진 검색 트리를 구축하려면 현재 변수를 클래스의 인스턴스로 참조하는 데 사용되는 this 키워드와 함께 값에 대한 int 데이터 유형과 왼쪽 및 오른쪽 노드에 대한 두 개의 포인터 변수를 사용할 수 있습니다. . 전체 이진 트리를 삭제하는 소멸자를 생성하려면 delete 키워드를 사용하여 변수의 메모리 할당을 해제할 수 있습니다.

이진 검색 트리를 삭제하려면 왼쪽 노드와 오른쪽 노드의 메모리 할당을 해제해야 합니다. 예를 들어 트리를 빌드하는 방법과 트리를 삭제하는 방법의 두 가지 방법을 포함하는 이진 검색 트리의 공개 클래스를 만들어 보겠습니다.

아래 코드를 참조하십시오.

#include <iostream>
using namespace std;

class BTreeNode {
 public:
  int Treedata;
  BTreeNode* leftNode;
  BTreeNode* rightNode;

  BTreeNode(int Treedata) {
    this->Treedata = Treedata;
    this->leftNode = NULL;
    this->rightNode = NULL;
  }
  ~BTreeNode() {
    delete leftNode;
    delete rightNode;
    cout << "Deleting " << this->Treedata << endl;
  }
};

int main() {
  BTreeNode* root = new BTreeNode(1);
  BTreeNode* node1 = new BTreeNode(2);
  BTreeNode* node2 = new BTreeNode(3);

  root->leftNode = node1;
  root->rightNode = node2;

  delete root;

  return 0;
}

출력:

Deleting 2
Deleting 3
Deleting 1

위의 코드에서 루트와 두 개의 노드가 있는 트리를 만들고 delete 키워드를 사용하여 삭제했습니다. 또한 cout() 함수를 사용하여 하나씩 삭제되는 노드의 값을 표시했습니다.

위의 출력에서 node2가 왼쪽 노드이기 때문에 먼저 삭제되고 이진 검색 트리의 소멸자 내부에서 왼쪽 노드를 먼저 삭제한 것을 볼 수 있습니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - C++ Data Structure