Maison > développement back-end > C++ > Écrire un programme de programmation C pour supprimer un arbre

Écrire un programme de programmation C pour supprimer un arbre

WBOY
Libérer: 2023-08-26 14:45:05
avant
1129 Les gens l'ont consulté

Pour supprimer un arbre, nous devons parcourir chaque nœud de l'arbre et les supprimer un par un. De cette façon, nous pouvons supprimer chaque nœud de l’arborescence un par un, le rendant ainsi vide. Pour ce faire, nous devons utiliser une méthode qui parcourt l'arborescence de bas en haut afin de pouvoir supprimer d'abord les nœuds inférieurs, puis leurs parents afin d'éviter une complexité supplémentaire. En fonction de nos besoins, le parcours post-commande est le plus approprié et fonctionne efficacement pour rendre notre programme optimal.

Le parcours post-ordre de l'arbre suivant est -

2-6-4-12-17-15
Copier après la connexion

La technique de parcours cellulaire post-ordre fonctionne comme suit :

Vérifier le nœud enfant gauche → Vérifier le nœud racine → Vérifier le nœud enfant droit

Écrire un programme de programmation C pour supprimer un arbre

Exemple

#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;
}
Copier après la connexion

Sortie

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
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal