Để xóa một cây, chúng ta cần đi qua từng nút của cây và sau đó xóa từng nút trong số chúng. cái này lần lượt xóa từng nút của cây và làm cho nó trống. Đối với điều này, chúng ta cần sử dụng một phương pháp đi ngang cây từ dưới lên trên để chúng ta có thể xóa các nốt dưới trước và sau đó là bố mẹ của chúng để không phát sinh thêm phức tạp. Dựa trên điều kiện mà chúng ta cần, Đường truyền đơn đặt hàng sẽ phù hợp nhất và hoạt động hiệu quả để chương trình của chúng ta đạt hiệu quả tối ưu.
Thứ tự sau cho cây sau là -
2-6-4-12-17-15
Kỹ thuật tế bào du lịch theo đơn đặt hàng hoạt động theo cách sau -
kiểm tra nút con bên trái → kiểm tra nút gốc → chekcs nút con bên phải
Ví dụ
#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; }
Đầu ra
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