fork download
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. struct node{
  4. int val;
  5. struct node *left;
  6. struct node *right;
  7. };
  8.  
  9. void create(int co, struct node **leaf){
  10. if(*leaf==0){
  11. (*leaf)=malloc(sizeof(**leaf));
  12. (*leaf)->val=co;
  13. (*leaf)->left=0;
  14. (*leaf)->right=0;
  15. }
  16. else if(co<(*leaf)->val){
  17. create(co, &(*leaf)->left);
  18. }
  19. else if(co>=(*leaf)->val){
  20. create(co, &(*leaf)->right);
  21. }
  22. }
  23.  
  24. void traverse(struct node *r)
  25. {
  26. if(r)
  27. {
  28. printf("%d ",r->val);
  29. traverse(r->left);
  30. traverse(r->right);
  31. }
  32. }
  33. int main()
  34. {
  35. struct node *root;
  36. int i;
  37. int f[]={1,2,3,4,5};
  38. int c = sizeof(f)/sizeof(int);
  39. root=0;
  40. for(i=0;i<c;i++){
  41. create(f[i], &root);
  42. }
  43. traverse(root);
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0.02s 1808KB
stdin
Standard input is empty
stdout
1 2 3 4 5