Advertisement
aqibm

Untitled

Apr 8th, 2025
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. Node Merge(const Node& n1, const Node& n2) {
  2. // bases cases
  3. Node mergedNode = Node();
  4. mergedNode.name = n1.name);
  5. mergedNode.value = n2.value;
  6.  
  7. // children
  8. int n1ChildrenSize = n1.children.size();
  9. int n2ChildrenSize = n2.children.size();
  10.  
  11. vector<Node> mergedChildren;
  12. vector<bool> isAvailableN1(n1ChildrenSize,true);
  13. vector<bool> isAvailableN2(n2ChildrenSize,true);
  14.  
  15. for(int index1=0;index1<n1ChildrenSize; index1++){
  16. for(index2=0;index2<n2ChildrenSize;index2++){
  17. if(isAvailableN2[index]==true && n1.children[index1]->name == n2.children[index2]->name){
  18. mergedChildren.push_back(merge(n1.children[index1],n2.children[index2]));
  19. isAvailableN1[index1] = false;
  20. isAvailableN2[index2] = false;
  21. }
  22. }
  23. }
  24.  
  25. for(int index1=0;index1<n1ChildrenSize; index1++){
  26. if(isAvailableN1[index1]==true){
  27. mergedChildren.push_back(n1.children[index1]);
  28. }
  29. }
  30.  
  31. for(int index2=0;index2<n2ChildrenSize; index2++){
  32. if(isAvailableN2[index2]==true){
  33. mergedChildren.push_back(n2.children[index2]);
  34. }
  35. }
  36.  
  37. mergedNode.children = mergedChildren;
  38. return mergedNode;
  39.  
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement