Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. void MovieTree::addMovie(int ranking, string title, int year, float rating)
  2. {
  3.  
  4. //creating the new tree node
  5. TreeNode *temp = new TreeNode();
  6. temp->titleChar=title[0];
  7. LLMovieNode* tempLL = new LLMovieNode(ranking, title, year, rating);
  8. temp->head = tempLL;
  9.  
  10. //no tree existing
  11. if(!root)
  12. {
  13. root = temp;
  14. return;
  15. }
  16.  
  17. //char already in tree
  18. TreeNode *node = searchChar(title[0]);
  19. if(node)
  20. {
  21. LLMovieNode *prev = nullptr;
  22. LLMovieNode *curr = node->head;
  23. while(curr)
  24. {
  25. //iterate
  26. if(curr->title>title)
  27. {
  28. prev = curr;
  29. curr = curr->next;
  30. }
  31. else
  32. {
  33. if(prev)
  34. prev->next = tempLL;
  35. else
  36. node->head=tempLL;
  37. tempLL->next = curr;
  38. return;
  39. }
  40. }
  41. }
  42. //char not in tree
  43. else
  44. {
  45. bool lr = false; // false = left, true = right
  46. TreeNode *prev = nullptr;
  47. TreeNode *curr = root;
  48. while(curr)
  49. {
  50. if(curr->titleChar > title[0])
  51. {
  52. prev = curr;
  53. curr = curr->leftChild;
  54. lr = false;
  55. }
  56. else
  57. {
  58. prev = curr;
  59. curr = curr->rightChild;
  60. lr = true;
  61. }
  62. }
  63. if(lr)
  64. {
  65. prev->rightChild = temp;
  66. temp->parent=prev;
  67. }
  68. else
  69. {
  70. prev->leftChild=temp;
  71. temp->parent=prev;
  72. }
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement