Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void MovieTree::addMovie(int ranking, string title, int year, float rating)
- {
- //creating the new tree node
- TreeNode *temp = new TreeNode();
- temp->titleChar=title[0];
- LLMovieNode* tempLL = new LLMovieNode(ranking, title, year, rating);
- temp->head = tempLL;
- //no tree existing
- if(!root)
- {
- root = temp;
- return;
- }
- //char already in tree
- TreeNode *node = searchChar(title[0]);
- if(node)
- {
- LLMovieNode *prev = nullptr;
- LLMovieNode *curr = node->head;
- while(curr)
- {
- //iterate
- if(curr->title>title)
- {
- prev = curr;
- curr = curr->next;
- }
- else
- {
- if(prev)
- prev->next = tempLL;
- else
- node->head=tempLL;
- tempLL->next = curr;
- return;
- }
- }
- }
- //char not in tree
- else
- {
- bool lr = false; // false = left, true = right
- TreeNode *prev = nullptr;
- TreeNode *curr = root;
- while(curr)
- {
- if(curr->titleChar > title[0])
- {
- prev = curr;
- curr = curr->leftChild;
- lr = false;
- }
- else
- {
- prev = curr;
- curr = curr->rightChild;
- lr = true;
- }
- }
- if(lr)
- {
- prev->rightChild = temp;
- temp->parent=prev;
- }
- else
- {
- prev->leftChild=temp;
- temp->parent=prev;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement