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
WBOYnach vorne
2023-08-26 14:45:051121Durchsuche

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

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

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen