C++-Binärsuchbaum-Destruktor

Ammar Ali 12 Oktober 2023
C++-Binärsuchbaum-Destruktor

In diesem Tutorial wird das Erstellen eines Destruktors für einen binären Suchbaum mit dem Schlüsselwort delete in C++ erläutert.

C++-Binärsuchbaum-Destruktor

Ein binärer Suchbaum (BST) ist eine Datenstruktur, die sortierte Daten speichert, die durchsucht werden können. Ein binärer Suchbaum wird in Rechenzentren und Software verwendet.

Ein binärer Suchbaum besteht aus Knoten, und jeder Knoten hat zwei Kinder. Wenn ein Binärbaum erstellt wird, stellt der erste Wert den Wurzelknoten dar, und der nächste Wert wird rechts davon platziert, wenn er größer als der Wurzelknoten ist; Andernfalls wird es links davon platziert.

Wenn der nächste Wert kommt, müssen wir ihn zuerst mit dem Wurzelknoten vergleichen, und dann werden wir ihn mit anderen untergeordneten Knoten vergleichen, falls es welche gibt.

Jeder Knoten des binären Suchbaums besteht aus einem Schlüssel und einem Wert. Der binäre Suchbaum ist einfach zu durchsuchen, da er bereits sortiert ist.

Um einen binären Suchbaum in C++ zu erstellen, können wir den Datentyp int für den Wert und zwei Zeigervariablen für den linken und rechten Knoten zusammen mit dem Schlüsselwort this verwenden, das verwendet wird, um die aktuellen Variablen auf die Instanz der Klasse zu verweisen . Um den Destruktor zu erstellen, der den gesamten Binärbaum löscht, können wir das Schlüsselwort delete verwenden, um den Speicher der Variablen freizugeben.

Wir müssen den Speicher der linken und rechten Knoten freigeben, um den binären Suchbaum zu löschen. Lassen Sie uns zum Beispiel eine öffentliche Klasse eines binären Suchbaums erstellen, die zwei Methoden enthält, eine zum Erstellen des Baums und eine zum Löschen.

Siehe Code unten.

#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;
}

Ausgang:

Deleting 2
Deleting 3
Deleting 1

Im obigen Code haben wir einen Baum mit einer Wurzel und zwei Knoten erstellt und ihn mit dem Schlüsselwort delete gelöscht. Wir haben auch die Funktion cout() verwendet, um die Werte der Knoten anzuzeigen, die nacheinander gelöscht werden.

In der obigen Ausgabe können wir sehen, dass node2 zuerst gelöscht wird, weil es der linke Knoten ist, und wir haben den linken Knoten zuerst im Destruktor des binären Suchbaums gelöscht.

Autor: 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

Verwandter Artikel - C++ Data Structure