e7f9dc6bc2f33ce5af9b759dd995fa9b329237722d5d013b394a4e215a1a2d85d06d6252107b7f7618e51d1672d2b9a772e993a0d534f16ba63328947682e0 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. "use strict";
  2. Object.defineProperty(exports, "t", {
  3. value: true
  4. });
  5. exports.TreeNodeEnableIndex = exports.TreeNode = void 0;
  6. class TreeNode {
  7. constructor(e, t) {
  8. this.ee = 1;
  9. this.u = undefined;
  10. this.l = undefined;
  11. this.U = undefined;
  12. this.W = undefined;
  13. this.tt = undefined;
  14. this.u = e;
  15. this.l = t;
  16. }
  17. L() {
  18. let e = this;
  19. if (e.ee === 1 && e.tt.tt === e) {
  20. e = e.W;
  21. } else if (e.U) {
  22. e = e.U;
  23. while (e.W) {
  24. e = e.W;
  25. }
  26. } else {
  27. let t = e.tt;
  28. while (t.U === e) {
  29. e = t;
  30. t = e.tt;
  31. }
  32. e = t;
  33. }
  34. return e;
  35. }
  36. B() {
  37. let e = this;
  38. if (e.W) {
  39. e = e.W;
  40. while (e.U) {
  41. e = e.U;
  42. }
  43. return e;
  44. } else {
  45. let t = e.tt;
  46. while (t.W === e) {
  47. e = t;
  48. t = e.tt;
  49. }
  50. if (e.W !== t) {
  51. return t;
  52. } else return e;
  53. }
  54. }
  55. te() {
  56. const e = this.tt;
  57. const t = this.W;
  58. const s = t.U;
  59. if (e.tt === this) e.tt = t; else if (e.U === this) e.U = t; else e.W = t;
  60. t.tt = e;
  61. t.U = this;
  62. this.tt = t;
  63. this.W = s;
  64. if (s) s.tt = this;
  65. return t;
  66. }
  67. se() {
  68. const e = this.tt;
  69. const t = this.U;
  70. const s = t.W;
  71. if (e.tt === this) e.tt = t; else if (e.U === this) e.U = t; else e.W = t;
  72. t.tt = e;
  73. t.W = this;
  74. this.tt = t;
  75. this.U = s;
  76. if (s) s.tt = this;
  77. return t;
  78. }
  79. }
  80. exports.TreeNode = TreeNode;
  81. class TreeNodeEnableIndex extends TreeNode {
  82. constructor() {
  83. super(...arguments);
  84. this.rt = 1;
  85. }
  86. te() {
  87. const e = super.te();
  88. this.ie();
  89. e.ie();
  90. return e;
  91. }
  92. se() {
  93. const e = super.se();
  94. this.ie();
  95. e.ie();
  96. return e;
  97. }
  98. ie() {
  99. this.rt = 1;
  100. if (this.U) {
  101. this.rt += this.U.rt;
  102. }
  103. if (this.W) {
  104. this.rt += this.W.rt;
  105. }
  106. }
  107. }
  108. exports.TreeNodeEnableIndex = TreeNodeEnableIndex;
  109. //# sourceMappingURL=TreeNode.js.map