>  기사  >  백엔드 개발  >  트리를 삭제하는 C 프로그래밍 프로그램 작성

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

WBOY
WBOY앞으로
2023-08-26 14:45:051083검색

트리를 삭제하려면 트리의 각 노드를 순회하여 하나씩 삭제해야 합니다. 이런 식으로 트리의 각 노드를 하나씩 삭제하여 비어 있게 만들 수 있습니다. 이를 위해 우리는 추가적인 복잡성을 피하기 위해 먼저 낮은 노드를 제거한 다음 그 부모를 제거할 수 있도록 트리를 아래에서 위로 순회하는 방법을 사용해야 합니다. 우리의 필요에 따라 후위 순회가 가장 적합하며 프로그램을 최적으로 만드는 데 효율적으로 작동합니다.

다음 트리의 사후 순회는 -

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("</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;
}

출력

르레

위 내용은 트리를 삭제하는 C 프로그래밍 프로그램 작성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제