Skip to main content

Aufgabe 14

Schwierigkeitsgrad: Mittel
Themen: Zeiger Rekursion Programmausgane Kontrollstrukturen Funktionen

Erstellen Sie einen Binary Tree. Ein Binary Tree ist ein spezieller Baum, bei dem jedes Element (Knoten) höchstens zwei Nachfolger hat: einen linken und einen rechten. Dabei gilt: Das linke Element ist kleiner, das rechte Element ist größer als der Wert des aktuellen Knotens.

Zur Vereinfachung ist die Klasse für einen Knoten bereits vorgegeben:

class Node
{
public:
int data;
Node *left;
Node *right;
Node(int value) : data(value), left(nullptr), right(nullptr) {}
};

Implementieren Sie die folgenden drei Funktionen mithilfe von Rekursion:

  • void insert(Node *&root, int value) (fügt ein neues Element in den Baum ein und ordnet es an der richtigen Position ein)
  • void inorderTraversal(Node *root) (gibt alle Elemente des Baums in aufsteigender Reihenfolge aus)
  • void deleteTree(Node *&root) (löscht alle dynamisch allozierten Knoten und gibt den belegten Speicher frei)