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
가 왼쪽 노드이기 때문에 먼저 삭제되고 이진 검색 트리의 소멸자 내부에서 왼쪽 노드를 먼저 삭제한 것을 볼 수 있습니다.