Heim > Backend-Entwicklung > C++ > Schreiben Sie ein C-Programmierprogramm, um einen Baum zu löschen

Schreiben Sie ein C-Programmierprogramm, um einen Baum zu löschen

WBOY
Freigeben: 2023-08-26 14:45:05
nach vorne
1129 Leute haben es durchsucht

Um einen Baum zu löschen, müssen wir jeden Knoten des Baums durchlaufen und ihn einzeln löschen. Auf diese Weise können wir jeden Knoten des Baums einzeln löschen und ihn leer machen. Dazu müssen wir eine Methode verwenden, die den Baum von unten nach oben durchläuft, sodass wir zuerst die unteren Knoten und dann ihre übergeordneten Knoten entfernen können, um zusätzliche Komplexität zu vermeiden. Basierend auf unseren Anforderungen ist Postorder-Traversal am besten geeignet und funktioniert effizient, um unser Programm optimal zu machen.

Die Post-Order-Traversierung des folgenden Baums ist -

2-6-4-12-17-15
Nach dem Login kopieren

Die Post-Order-Traversal-Zellentechnik funktioniert wie folgt:

Überprüfen Sie den linken untergeordneten Knoten → Überprüfen Sie den Wurzelknoten → Überprüfen Sie den rechten untergeordneten Knoten

Schreiben Sie ein C-Programmierprogramm, um einen Baum zu löschen

Beispiel

#include<stdio.h>
#include<stdlib.h>
struct node {
   int data;
   struct node* left;
   struct node* right;
};
struct node* addnode(int data) {
   struct node* node = (struct node*)
      malloc(sizeof(struct node));
   node->data = data;
   node->left = NULL;
   node->right = NULL;
   return(node);
}
void nodedel(struct node* node) {
   if (node == NULL) return;
   nodedel(node->left);
   nodedel(node->right);
   printf("</p><p> Node deleted, value is %d", node->data);
   free(node);
}
int main() {
   struct node *root = addnode(9);
   root->left = addnode(4);
   root->right = addnode(15);
   root->left->left = addnode(2);
   root->left->right = addnode(6);
   root->right->left = addnode(12);
   root->right->right = addnode(17);
   nodedel(root);
   root = NULL;
   printf("</p><p> Tree deleted ");
   return 0;
}
Nach dem Login kopieren

Ausgabe

Node deleted, value is 4
Node deleted, value is 12
Node deleted, value is 17
Node deleted, value is 15
Node deleted, value is 9
Tree deleted
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSchreiben Sie ein C-Programmierprogramm, um einen Baum zu löschen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage