fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct node {
  5. int val;
  6. struct node * left;
  7. struct node * right;} node_t;
  8.  
  9. void insert(node_t * tree,int val);
  10. void print_tree(node_t * current);
  11. void printDFS(node_t * current);
  12.  
  13. int main() {
  14. node_t * test_list = malloc(sizeof(node_t));
  15. insert(test_list,5);
  16. insert(test_list,8);
  17. insert(test_list,4);
  18. insert(test_list,3);
  19. printDFS(test_list);}
  20.  
  21. void insert(node_t * tree,int val){
  22. if(tree->val==NULL)tree->val=val;
  23. else if(val<tree->val)
  24. if(tree->left!=NULL)insert(tree->left,val);
  25. else{
  26. tree->left=malloc(sizeof(node_t));
  27. tree->left->val=val; }
  28. else if(val>=tree->val)
  29. if(tree->right!=NULL)insert(tree->right,val);
  30. else{
  31. tree->right=malloc(sizeof(node_t));
  32. tree->right->val=val;} }
  33.  
  34. void print_tree(node_t * current) {
  35. if(current!=NULL)printf("\n%d ",current->val);
  36. if(current->left!=NULL) printf("L%d ",current->left->val);
  37. if(current->right!=NULL)printf(" R%d",current->right->val);
  38. if(current->left!=NULL) print_tree(current->left);
  39. if(current->right!=NULL)print_tree(current->right);}
  40.  
  41. void printDFS(node_t * current) {
  42. if(current->left!=NULL) printDFS(current->left);
  43. if(current!=NULL)printf("%d ",current->val);
  44. if(current->right!=NULL)printDFS(current->right);}
Success #stdin #stdout 0s 9416KB
stdin
Standard input is empty
stdout
3 4 5 8