Advertisement
Guest User

Untitled

a guest
Jan 24th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. struct Node
  2. {
  3. int data;
  4. Node * next;
  5. Node(int _data, Node* _next=nullptr) : data(_data), next(_next) {}
  6. };
  7.  
  8. void insertNode(Node * nodeToBeInserted, Node* previousNode)
  9. {
  10. Node * tmp = previousNode->next;
  11. previousNode->next = nodeToBeInserted;
  12. nodeToBeInserted->next = tmp;
  13. }
  14.  
  15. void expand(Node * begin)
  16. {
  17. Node * itr = begin;
  18. if(itr == nullptr)
  19. return;
  20. else
  21. {
  22. while(itr->next)
  23. {
  24. if(itr->data == itr->next->data)
  25. {
  26. int k = itr->data;
  27.  
  28. for (int i = 0; i < k; i++)
  29. {
  30. insertNode(new Node(k), itr);
  31. itr = itr->next;
  32. }
  33.  
  34. itr = itr->next;
  35. }
  36. else
  37. {
  38. itr = itr->next;
  39. }
  40. }
  41. }
  42. }
  43.  
  44. int main()
  45. {
  46. Node * beg = new Node(0);
  47. beg->next = new Node(0);
  48. beg->next->next = new Node(1);
  49. beg->next->next->next = new Node(1);
  50. beg->next->next->next->next = new Node(2);
  51. beg->next->next->next->next->next = new Node(2);
  52. beg->next->next->next->next->next->next = new Node(2);
  53. beg->next->next->next->next->next->next->next = new Node(3);
  54.  
  55. expand(beg);
  56.  
  57. return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement