Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. struct Lode
  2. {
  3. int getRank()
  4. {
  5. rank = 1;
  6.  
  7. if (left || right)
  8. {
  9. int rankL = 0, rankR = 0;
  10.  
  11. if (left) rankL = left->getRank();
  12. if (right) rankR = right->getRank();
  13.  
  14. if (rankL < rankR)
  15. rank = rankL + 1;
  16. else
  17. rank = rankR + 1;
  18. }
  19. return rank;
  20. }
  21. };
  22.  
  23. struct Leap
  24. {
  25. Lode* merge(Lode* x, Lode* y)
  26. {
  27. if (!x) return y;
  28. if (!y) return x;
  29.  
  30. if (x->data > y->data)
  31. swap(x,y);
  32.  
  33. x->right = merge(x->right, y);
  34.  
  35. x->getRank();
  36. int rankL = 0, rankR = 0;
  37. if (x->left) rankL = x->left->rank;
  38. if (x->right) rankR = x->right->rank;
  39.  
  40. if (rankL < rankR)
  41. swap(x->left, x->right);
  42.  
  43. return x;
  44. }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement