Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
b
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
b
Commits
9e241343
Commit
9e241343
authored
Apr 13, 2017
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
817e27db
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
22 deletions
+9
-22
btree.go
btree.go
+9
-22
No files found.
btree.go
View file @
9e241343
...
@@ -384,24 +384,6 @@ func (t *Tree) Delete(k interface{} /*K*/) (ok bool) {
...
@@ -384,24 +384,6 @@ func (t *Tree) Delete(k interface{} /*K*/) (ok bool) {
if
x
.
c
<
kx
&&
q
!=
t
.
r
{
if
x
.
c
<
kx
&&
q
!=
t
.
r
{
dbg
(
"UNDERFLOWX
\n\t
p: %v @%d
\n\t
x: %v @%d"
,
p
,
pi
,
x
,
i
)
dbg
(
"UNDERFLOWX
\n\t
p: %v @%d
\n\t
x: %v @%d"
,
p
,
pi
,
x
,
i
)
x
,
i
=
t
.
underflowX
(
p
,
x
,
pi
,
i
)
x
,
i
=
t
.
underflowX
(
p
,
x
,
pi
,
i
)
/*
dbg("\n\t-> p: %v @%d\n\tx: %v @%d", p, pi, x, i)
// NOTE underflowX changes p which means hit
// Kmin/Kmax/PKmax have to be recomputed
if pi >= 0 && pi < p.c {
hitPKmax.set(p.x[pi].k)
dbg("hitPKmax X: %v", hitPKmax)
hitKmax = hitPKmax
dbg("hitKmax X: %v", hitKmax)
}
if pi > 0 {
hitKmin.set(p.x[pi-1].k)
dbg("hitKmin X: %v", hitKmin)
}
*/
}
}
t
.
hitPKmax
=
t
.
hitKmax
t
.
hitPKmax
=
t
.
hitKmax
...
@@ -1042,11 +1024,16 @@ func (t *Tree) underflow(p *x, q *d, pi int) {
...
@@ -1042,11 +1024,16 @@ func (t *Tree) underflow(p *x, q *d, pi int) {
t
.
cat
(
p
,
q
,
r
,
pi
)
t
.
cat
(
p
,
q
,
r
,
pi
)
// hitD/hitDi stays unchanged
// hitD/hitDi stays unchanged
t
.
hitKmax
=
t
.
hitPKmax
t
.
hitKmax
=
t
.
hitPKmax
if
t
.
r
!=
q
&&
pi
<
p
.
c
{
// means < ∞
if
t
.
r
!=
q
{
if
pi
<
p
.
c
{
// means < ∞
t
.
hitKmax
.
set
(
p
.
x
[
pi
]
.
k
)
t
.
hitKmax
.
set
(
p
.
x
[
pi
]
.
k
)
}
}
// XXX vvv correct vs t.r != q ?
t
.
hitPi
=
pi
// XXX? (+ already pre-set this way ?)
t
.
hitPi
=
pi
// XXX? (+ already pre-set this way ?)
}
else
{
// cat removed p
t
.
hitP
=
nil
t
.
hitPi
=
-
1
}
}
}
func
(
t
*
Tree
)
underflowX
(
p
*
x
,
q
*
x
,
pi
int
,
i
int
)
(
*
x
,
int
)
{
func
(
t
*
Tree
)
underflowX
(
p
*
x
,
q
*
x
,
pi
int
,
i
int
)
(
*
x
,
int
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment