var __extends = this && this.t || function() { var extendStatics = function(e, n) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, n) { e.__proto__ = n; } || function(e, n) { for (var t in n) if (Object.prototype.hasOwnProperty.call(n, t)) e[t] = n[t]; }; return extendStatics(e, n); }; return function(e, n) { if (typeof n !== "function" && n !== null) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null"); extendStatics(e, n); function __() { this.constructor = e; } e.prototype = n === null ? Object.create(n) : (__.prototype = n.prototype, new __); }; }(); var TreeNode = function() { function TreeNode(e, n) { this.ee = 1; this.u = undefined; this.p = undefined; this.K = undefined; this.N = undefined; this.rr = undefined; this.u = e; this.p = n; } TreeNode.prototype.L = function() { var e = this; if (e.ee === 1 && e.rr.rr === e) { e = e.N; } else if (e.K) { e = e.K; while (e.N) { e = e.N; } } else { var n = e.rr; while (n.K === e) { e = n; n = e.rr; } e = n; } return e; }; TreeNode.prototype.m = function() { var e = this; if (e.N) { e = e.N; while (e.K) { e = e.K; } return e; } else { var n = e.rr; while (n.N === e) { e = n; n = e.rr; } if (e.N !== n) { return n; } else return e; } }; TreeNode.prototype.ne = function() { var e = this.rr; var n = this.N; var t = n.K; if (e.rr === this) e.rr = n; else if (e.K === this) e.K = n; else e.N = n; n.rr = e; n.K = this; this.rr = n; this.N = t; if (t) t.rr = this; return n; }; TreeNode.prototype.te = function() { var e = this.rr; var n = this.K; var t = n.N; if (e.rr === this) e.rr = n; else if (e.K === this) e.K = n; else e.N = n; n.rr = e; n.N = this; this.rr = n; this.K = t; if (t) t.rr = this; return n; }; return TreeNode; }(); export { TreeNode }; var TreeNodeEnableIndex = function(e) { __extends(TreeNodeEnableIndex, e); function TreeNodeEnableIndex() { var n = e !== null && e.apply(this, arguments) || this; n.tr = 1; return n; } TreeNodeEnableIndex.prototype.ne = function() { var n = e.prototype.ne.call(this); this.ie(); n.ie(); return n; }; TreeNodeEnableIndex.prototype.te = function() { var n = e.prototype.te.call(this); this.ie(); n.ie(); return n; }; TreeNodeEnableIndex.prototype.ie = function() { this.tr = 1; if (this.K) { this.tr += this.K.tr; } if (this.N) { this.tr += this.N.tr; } }; return TreeNodeEnableIndex; }(TreeNode); export { TreeNodeEnableIndex }; //# sourceMappingURL=TreeNode.js.map