Skip to content

Commit a206e9e

Browse files
committedJul 14, 2020
tweak
1 parent 870b117 commit a206e9e

File tree

3 files changed

+20
-29
lines changed

3 files changed

+20
-29
lines changed
 

‎jscomp/others/belt_internalAVLtree.ml

+14-19
Original file line numberDiff line numberDiff line change
@@ -65,26 +65,21 @@ let updateValue n newValue =
6565
let bal l x d r =
6666
let hl = match l with None -> 0 | Some n -> n.height in
6767
let hr = match r with None -> 0 | Some n -> n.height in
68-
if hl > hr + 2 then begin
68+
if hl > hr + 2 then
6969
match l with None -> assert false | Some ({left = ll; right = lr} as l) ->
70-
if treeHeight ll >= treeHeight lr then
71-
create ll l.key l.value (create lr x d r)
72-
else begin
73-
match lr with None -> assert false
74-
| Some lr ->
75-
create (create ll l.key l.value lr.left) lr.key lr.value (create lr.right x d r)
76-
end
77-
end else if hr > hl + 2 then begin
78-
match r with None -> assert false
79-
| Some {left = rl; key = rv; value = rd; right = rr} ->
80-
if treeHeight rr >= treeHeight rl then
81-
create (create l x d rl) rv rd rr
82-
else begin
83-
match rl with None -> assert false
84-
| Some rl ->
85-
create (create l x d rl.left) rl.key rl.value (create rl.right rv rd rr)
86-
end
87-
end else
70+
if treeHeight ll >= treeHeight lr then
71+
create ll l.key l.value (create lr x d r)
72+
else
73+
match lr with None -> assert false | Some lr ->
74+
create (create ll l.key l.value lr.left) lr.key lr.value (create lr.right x d r)
75+
else if hr > hl + 2 then
76+
match r with None -> assert false | Some ({left = rl; right = rr} as r) ->
77+
if treeHeight rr >= treeHeight rl then
78+
create (create l x d rl) r.key r.value rr
79+
else
80+
match rl with None -> assert false | Some rl ->
81+
create (create l x d rl.left) rl.key rl.value (create rl.right r.key r.value rr)
82+
else
8883
Some { left = l; key = x ; value = d ; right = r ; height = (if hl >= hr then hl + 1 else hr + 1)}
8984

9085

‎lib/es6/belt_internalAVLtree.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,12 @@ function bal(l, x, d, r) {
9595
r: r
9696
};
9797
}
98-
var rv = r.k;
99-
var rd = r.v;
10098
var rl = r.l;
10199
var rr = r.r;
102100
if (treeHeight(rr) >= treeHeight(rl)) {
103-
return create(create(l, x, d, rl), rv, rd, rr);
101+
return create(create(l, x, d, rl), r.k, r.v, rr);
104102
} else {
105-
return create(create(l, x, d, rl.l), rl.k, rl.v, create(rl.r, rv, rd, rr));
103+
return create(create(l, x, d, rl.l), rl.k, rl.v, create(rl.r, r.k, r.v, rr));
106104
}
107105
}
108106

@@ -592,7 +590,7 @@ function checkInvariantInternal(_v) {
592590
var r = v.r;
593591
var diff = treeHeight(l) - treeHeight(r) | 0;
594592
if (!(diff <= 2 && diff >= -2)) {
595-
throw new Error("File \"belt_internalAVLtree.ml\", line 379, characters 6-12");
593+
throw new Error("File \"belt_internalAVLtree.ml\", line 374, characters 6-12");
596594
}
597595
checkInvariantInternal(l);
598596
_v = r;

‎lib/js/belt_internalAVLtree.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,12 @@ function bal(l, x, d, r) {
9595
r: r
9696
};
9797
}
98-
var rv = r.k;
99-
var rd = r.v;
10098
var rl = r.l;
10199
var rr = r.r;
102100
if (treeHeight(rr) >= treeHeight(rl)) {
103-
return create(create(l, x, d, rl), rv, rd, rr);
101+
return create(create(l, x, d, rl), r.k, r.v, rr);
104102
} else {
105-
return create(create(l, x, d, rl.l), rl.k, rl.v, create(rl.r, rv, rd, rr));
103+
return create(create(l, x, d, rl.l), rl.k, rl.v, create(rl.r, r.k, r.v, rr));
106104
}
107105
}
108106

@@ -592,7 +590,7 @@ function checkInvariantInternal(_v) {
592590
var r = v.r;
593591
var diff = treeHeight(l) - treeHeight(r) | 0;
594592
if (!(diff <= 2 && diff >= -2)) {
595-
throw new Error("File \"belt_internalAVLtree.ml\", line 379, characters 6-12");
593+
throw new Error("File \"belt_internalAVLtree.ml\", line 374, characters 6-12");
596594
}
597595
checkInvariantInternal(l);
598596
_v = r;

0 commit comments

Comments
 (0)
Please sign in to comment.