9ffda68e27ff37f536853dbf6005dfa18ce3dc05a6633f9b453790ab7d768456a6d7940b2dcb399c066d9292671cf7d1bdfb650850a996ee566a7f95523b73 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. var __extends = this && this.t || function() {
  2. var extendStatics = function(e, n) {
  3. extendStatics = Object.setPrototypeOf || {
  4. __proto__: []
  5. } instanceof Array && function(e, n) {
  6. e.__proto__ = n;
  7. } || function(e, n) {
  8. for (var t in n) if (Object.prototype.hasOwnProperty.call(n, t)) e[t] = n[t];
  9. };
  10. return extendStatics(e, n);
  11. };
  12. return function(e, n) {
  13. if (typeof n !== "function" && n !== null) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null");
  14. extendStatics(e, n);
  15. function __() {
  16. this.constructor = e;
  17. }
  18. e.prototype = n === null ? Object.create(n) : (__.prototype = n.prototype, new __);
  19. };
  20. }();
  21. var TreeNode = function() {
  22. function TreeNode(e, n) {
  23. this.ee = 1;
  24. this.u = undefined;
  25. this.p = undefined;
  26. this.K = undefined;
  27. this.N = undefined;
  28. this.rr = undefined;
  29. this.u = e;
  30. this.p = n;
  31. }
  32. TreeNode.prototype.L = function() {
  33. var e = this;
  34. if (e.ee === 1 && e.rr.rr === e) {
  35. e = e.N;
  36. } else if (e.K) {
  37. e = e.K;
  38. while (e.N) {
  39. e = e.N;
  40. }
  41. } else {
  42. var n = e.rr;
  43. while (n.K === e) {
  44. e = n;
  45. n = e.rr;
  46. }
  47. e = n;
  48. }
  49. return e;
  50. };
  51. TreeNode.prototype.m = function() {
  52. var e = this;
  53. if (e.N) {
  54. e = e.N;
  55. while (e.K) {
  56. e = e.K;
  57. }
  58. return e;
  59. } else {
  60. var n = e.rr;
  61. while (n.N === e) {
  62. e = n;
  63. n = e.rr;
  64. }
  65. if (e.N !== n) {
  66. return n;
  67. } else return e;
  68. }
  69. };
  70. TreeNode.prototype.ne = function() {
  71. var e = this.rr;
  72. var n = this.N;
  73. var t = n.K;
  74. if (e.rr === this) e.rr = n; else if (e.K === this) e.K = n; else e.N = n;
  75. n.rr = e;
  76. n.K = this;
  77. this.rr = n;
  78. this.N = t;
  79. if (t) t.rr = this;
  80. return n;
  81. };
  82. TreeNode.prototype.te = function() {
  83. var e = this.rr;
  84. var n = this.K;
  85. var t = n.N;
  86. if (e.rr === this) e.rr = n; else if (e.K === this) e.K = n; else e.N = n;
  87. n.rr = e;
  88. n.N = this;
  89. this.rr = n;
  90. this.K = t;
  91. if (t) t.rr = this;
  92. return n;
  93. };
  94. return TreeNode;
  95. }();
  96. export { TreeNode };
  97. var TreeNodeEnableIndex = function(e) {
  98. __extends(TreeNodeEnableIndex, e);
  99. function TreeNodeEnableIndex() {
  100. var n = e !== null && e.apply(this, arguments) || this;
  101. n.tr = 1;
  102. return n;
  103. }
  104. TreeNodeEnableIndex.prototype.ne = function() {
  105. var n = e.prototype.ne.call(this);
  106. this.ie();
  107. n.ie();
  108. return n;
  109. };
  110. TreeNodeEnableIndex.prototype.te = function() {
  111. var n = e.prototype.te.call(this);
  112. this.ie();
  113. n.ie();
  114. return n;
  115. };
  116. TreeNodeEnableIndex.prototype.ie = function() {
  117. this.tr = 1;
  118. if (this.K) {
  119. this.tr += this.K.tr;
  120. }
  121. if (this.N) {
  122. this.tr += this.N.tr;
  123. }
  124. };
  125. return TreeNodeEnableIndex;
  126. }(TreeNode);
  127. export { TreeNodeEnableIndex };
  128. //# sourceMappingURL=TreeNode.js.map