fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. struct node{
  5. node* left;
  6. node* right;
  7. int val;
  8. node(int vval){
  9. left = NULL;
  10. right = NULL;
  11. val = vval;
  12. }
  13. };
  14.  
  15. void dfs(node* root){
  16. cout << root->val << " ";
  17. if(root->left != NULL)
  18. dfs(root->left);
  19. if(root->right != NULL)
  20. dfs(root->right);
  21. else
  22. delete root;
  23. return;
  24. }
  25.  
  26. int main(){
  27. int n,tmp;
  28. node* root = new node(0);
  29. while(cin >> n){
  30. for(int i = 0;i < n;++i){
  31. cin >> tmp;
  32. if(i == 0 ) *root = node(tmp);
  33. node* now = root;
  34. while(1){
  35. if(now != NULL){
  36. if(tmp > now->val){
  37. now = now->right;
  38. }
  39. else{
  40. now = now->left;
  41. }
  42. }
  43. else{
  44. now = new node(tmp);
  45. break;
  46. }
  47. }
  48. }
  49. dfs(root);
  50. cout << endl;
  51. }
  52. return 0;
  53. }
Success #stdin #stdout 0.01s 5476KB
stdin
11
368 115 121 88 741 762 801 34 41 511 60
6
5 2 10 4 9 15
stdout
368 
5