Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 프로그래밍에서 트리를 삭제하는 프로그램 작성

<시간/>

트리를 삭제하려면 트리의 각 노드를 탐색한 다음 각 노드를 삭제해야 합니다. 이것은 트리의 모든 노드를 하나씩 삭제하고 비게 만듭니다. 이를 위해 아래에서 위로 트리를 가로지르는 방법을 사용하여 더 낮은 음표를 먼저 삭제한 다음 상위 음표를 삭제하여 추가 복잡성이 발생하지 않도록 해야 합니다. 우리가 필요로 하는 조건에 따라 후위 순회가 가장 적합하고 효율적으로 작동하여 프로그램이 최적이 되도록 합니다.

다음 나무의 주문은 -

입니다.
2-6-4-12-17-15

주문 후 여행 세포 기술은 다음과 같은 방식으로 작동합니다. -

왼쪽 자식 노드 확인 → 루트 노드 확인 → 오른쪽 자식 노드 확인

C 프로그래밍에서 트리를 삭제하는 프로그램 작성

예시

#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("\n 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("\n Tree deleted ");
   return 0;
}

출력

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