fork(1) download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. struct node {
  5. int data;
  6. struct node * left;
  7. struct node * right;
  8. };
  9.  
  10. struct node * newNode(int item)
  11. {
  12. struct node * node = (struct node *) malloc(sizeof(struct node));
  13. node->data = item;
  14. node->left = NULL;
  15. node->right = NULL;
  16. return node;
  17. };
  18.  
  19. void printPostorder(struct node * node)
  20. {
  21. if(node == NULL)
  22. return;
  23. printPostorder(node->left);
  24. printPostorder(node->right);
  25. printf("%d ",node->data);
  26. }
  27.  
  28. void deleteTree(struct node * node)
  29. {
  30. if(node == NULL)
  31. return;
  32. deleteTree(node->left);
  33. deleteTree(node->right);
  34. printf("\nnode being deleted:%d\n" , node->data);
  35. free(node);
  36. }
  37.  
  38.  
  39. int main()
  40. {
  41. struct node *root = newNode(1);
  42. root->left = newNode(2);
  43. root->right = newNode(3);
  44. root->left->left = newNode(4);
  45. root->left->right = newNode(5);
  46. printf("\n Postorder traversal of binary tree was \n");
  47. printPostorder(root);
  48. deleteTree(root);
  49. return 0;
  50. }
  51.  
  52.  
  53.  
  54.  
Success #stdin #stdout 0s 2424KB
stdin
Standard input is empty
stdout
 Postorder traversal of binary tree was 
4  5  2  3  1  
node being deleted:4

node being deleted:5

node being deleted:2

node being deleted:3

node being deleted:1