fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. typedef struct t
  4. {
  5. int data;
  6. struct t *left;
  7. struct t *right;
  8. }tree;
  9.  
  10. tree* insert(tree **node, int data)
  11. {
  12. if(!(*node))
  13. {
  14. *node=malloc(sizeof(tree));
  15. (*node)->data=data;
  16. (*node)->left=(*node)->right=NULL;
  17. return *node;
  18. }
  19. else
  20. {
  21. if(data>(*node)->data)
  22. {
  23. (*node)->right = insert(&((*node)->right),data);
  24. return *node;
  25. }
  26. else
  27. {
  28. (*node)->left = insert(&((*node)->left),data);
  29. return *node;
  30. }
  31. }
  32. }
  33.  
  34. void printtree(tree *node)
  35. {
  36. if(node)
  37. {
  38. printf("%d",node->data);
  39. printtree(node->left);
  40. printtree(node->right);
  41. }
  42. }
  43.  
  44. void freeMemory(tree *node)
  45. {
  46. if(node)
  47. {
  48. freeMemory(node->left);
  49. freeMemory(node->right);
  50. free(node);
  51. }
  52. }
  53.  
  54. int main()
  55. {
  56. tree *NODE = NULL;
  57. NODE= insert(&NODE,5);
  58. NODE= insert(&NODE,3);
  59. NODE= insert(&NODE,8);
  60. printtree(NODE);
  61. freeMemory(NODE);
  62. return 0;
  63. }
  64.  
Success #stdin #stdout 0s 1964KB
stdin
Standard input is empty
stdout
538