Advertisement
gracefu

Untitled

Oct 10th, 2016
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. } else if (left != NULL && right == NULL) {
  2. Tree_Replace (node, left);
  3. Tree_DeleteBalance (t, node, 0);
  4. toDelete = left;
  5. } else { // if (left != NULL && right != NULL)
  6. Node successor = right;
  7. if (successor->left == NULL) {
  8. Node parent = node->parent;
  9. successor->parent = parent;
  10. successor->left = left;
  11. successor->balance = node->balance;
  12.  
  13. if (left != NULL) {
  14. left->parent = successor;
  15. }
  16. if (node == t->root) {
  17. t->root = successor;
  18. } else {
  19. if (parent->left == node) {
  20. parent->left = successor;
  21. } else {
  22. parent->right = successor;
  23. }
  24. }
  25. Tree_DeleteBalance (t, successor, -1);
  26. } else {
  27.  
  28.  
  29. ...
  30.  
  31.  
  32. void Tree_Replace (Node target, Node source) {
  33. Node left = source->left;
  34. Node right = source->right;
  35.  
  36. target->balance = source->balance;
  37. target->data = source->data;
  38. target->left = left;
  39. target->right = right;
  40.  
  41. if (left != NULL) {
  42. left->parent = target;
  43. }
  44.  
  45. if (right != NULL) {
  46. right->parent = target;
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement