Guest User

Untitled

a guest
May 24th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4.  
  5. struct node {
  6. int value;
  7. node * left;
  8. node * right;
  9. bool deleted;
  10. };
  11.  
  12. void insert(node *parent, int value);
  13. void preorderTraverse(node *ptr);
  14.  
  15. void insert(node *parent, int value)
  16. {
  17.  
  18. if (!parent->value)
  19. {
  20. parent->value = value;
  21. return;
  22. }
  23.  
  24. node *child;
  25. if (parent->value > value) //Child needs to be a reference not a copy
  26. child = parent->left; //This compiles (a copy)
  27. else
  28. child = &parent->right; //This doesn't (attempt at pointer)
  29.  
  30. if (child == NULL)
  31. {
  32. child = new node();
  33. child->value = value;
  34. return;
  35. }
  36.  
  37. insert(child, value);
  38. };
  39.  
  40. void preorderTraverse(node *ptr)
  41. {
  42. if (ptr != NULL)
  43. {
  44. printf("\nValue = %d", ptr->value);
  45. preorderTraverse(ptr->left);
  46. preorderTraverse(ptr->right);
  47. }
  48. };
  49.  
  50. int main (int argc, char * const argv[]) {
  51.  
  52. node * tree = new node();
  53.  
  54. for (int x = 0; x < 100; x++)
  55. insert(tree, rand());
  56.  
  57. preorderTraverse(tree);
  58.  
  59. return 0;
  60. }
Add Comment
Please, Sign In to add comment