Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. public void delete(TreeNode z) {
  2. // TreeNode key = search(z.key);
  3. //
  4. // while(z!=_nil) {
  5. // if(newNode.key == key) {
  6. // z=newNode;
  7. // }
  8. // if(newNode.key<=key) {
  9. // newNode = newNode.right;
  10. // } else {
  11. // newNode = newNode.left;
  12. // }
  13. // }//end while
  14. //
  15. //
  16. // TreeNode y = z;
  17. // TreeNode x;
  18. // NodeColor yurspruenglichefarbe = y.color;
  19. // if (z.left == _nil) {
  20. // x = z.right;
  21. // RBTransplant(z, z.right);
  22. // } else if (z.right == _nil) {
  23. // x = z.left;
  24. // RBTransplant(z, z.left);
  25. // } else {
  26. // y = minimumSubtree(z.right);
  27. // }
  28. // yurspruenglichefarbe = y.color;
  29. // x = y.right;
  30. // if (y.p == z) {
  31. // x.p = y;
  32. // } else {
  33. // RBTransplant(y, y.right);
  34. // y.right = z.right;
  35. // y.right.p = y;
  36. // }
  37. //
  38. // RBTransplant(z, y);
  39. // y.left = z.left;
  40. // y.left.p = y;
  41. // y.color = z.color;
  42. // if (yurspruenglichefarbe == NodeColor.BLACK) {
  43. // RBDeleteFixUp(x);
  44. // }
  45. deleteHelp(this._root, z.key);
  46. }
  47.  
  48. public void deleteHelp(TreeNode newNode, int key) {
  49. TreeNode z = _nil;
  50. TreeNode x, y;
  51.  
  52. while (newNode != _nil) {
  53. if (newNode.key == key) {
  54. z = newNode;
  55. }
  56. if (newNode.key <= key) {
  57. newNode = newNode.right;
  58. } else {
  59. newNode = newNode.left;
  60. }
  61. } // end while
  62. if (z == _nil) {
  63. System.out.println("key wurde nicht gefunden");
  64. return;
  65. }
  66. y = z;
  67. NodeColor yUrspruenglicheFarbe = y.color;
  68. if (z.left == _nil) {
  69. x = z.right;
  70. RBTransplant(z, z.right);
  71. } else if (z.right == _nil) {
  72. x = z.left;
  73. RBTransplant(z, z.left);
  74. } else {
  75. y = minimumSubtree(z.right);
  76. yUrspruenglicheFarbe = y.color;
  77. x = y.right;
  78. if (y.p == z) {
  79. x.p = y;
  80. } else {
  81. RBTransplant(y, y.right);
  82. y.right = z.right;
  83. y.right.p = y;
  84. }
  85. RBTransplant(z, y);
  86. y.left = z.left;
  87. y.left.p = y;
  88. y.color = z.color;
  89. }
  90. if (yUrspruenglicheFarbe == NodeColor.BLACK) {
  91. RBDeleteFixUp(x);
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement