remove unnecessary move
s from avl
This commit is contained in:
parent
a60e4f09e0
commit
8195249e51
@ -80,20 +80,20 @@ pub trait BinaryTreesAvl<'a>:
|
|||||||
let (hl, hr) = (self.height(&tl), self.height(&tr));
|
let (hl, hr) = (self.height(&tl), self.height(&tr));
|
||||||
match (hl.saturating_sub(hr), hr.saturating_sub(hl)) {
|
match (hl.saturating_sub(hr), hr.saturating_sub(hl)) {
|
||||||
(0, 0) | (0, 1) | (1, 0) => self.try_join(tl, key, tr),
|
(0, 0) | (0, 1) | (1, 0) => self.try_join(tl, key, tr),
|
||||||
(0, _) => self.assume_bind(&tr, move |ctx, trl, kr, trr| {
|
(0, _) => self.assume_bind(&tr, |ctx, trl, kr, trr| {
|
||||||
let (rlh, rrh) = (ctx.height(&trl), ctx.height(&trr));
|
let (rlh, rrh) = (ctx.height(&trl), ctx.height(&trr));
|
||||||
if rlh > rrh {
|
if rlh > rrh {
|
||||||
ctx.assume_bind(&trl, move |ctx, trll, krl, trlr| {
|
ctx.assume_bind(&trl, |ctx, trll, krl, trlr| {
|
||||||
ctx.make_node((T(tl), key, T(trll)), krl, (T(trlr), kr, T(trr)))
|
ctx.make_node((T(tl), key, T(trll)), krl, (T(trlr), kr, T(trr)))
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
ctx.make_node((T(tl), key, T(trl)), kr, T(trr))
|
ctx.make_node((T(tl), key, T(trl)), kr, T(trr))
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
(_, 0) => self.assume_bind(&tl, move |ctx, tll, kl, tlr| {
|
(_, 0) => self.assume_bind(&tl, |ctx, tll, kl, tlr| {
|
||||||
let (hll, hlr) = (ctx.height(&tll), ctx.height(&tlr));
|
let (hll, hlr) = (ctx.height(&tll), ctx.height(&tlr));
|
||||||
if hll < hlr {
|
if hll < hlr {
|
||||||
ctx.assume_bind(&tlr, move |ctx, tlrl, klr, tlrr| {
|
ctx.assume_bind(&tlr, |ctx, tlrl, klr, tlrr| {
|
||||||
ctx.make_node((T(tll), kl, T(tlrl)), klr, (T(tlrr), key, T(tr)))
|
ctx.make_node((T(tll), kl, T(tlrl)), klr, (T(tlrr), key, T(tr)))
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user