File tree Expand file tree Collapse file tree 1 file changed +15
-22
lines changed Expand file tree Collapse file tree 1 file changed +15
-22
lines changed Original file line number Diff line number Diff line change @@ -240,27 +240,20 @@ namespace alg {
240240WRITE (x);
241241return ;
242242} else { // in non-leaf node
243- node y, z;
244- if (i-1 >= 0 ) {// case 2a
245- y = READ (x, i-1 );
246- std::auto_ptr<node_t > _y (y);
247- if (y->n >= T) {
248- x->key [i] = y->key [y->n -1 ];
249- WRITE (x);
250- delete_op (y, x->key [i]);
251- return ;
252- }
243+ std::auto_ptr<node_t > y (READ (x, i));
244+ if (y->n >= T) {// case 2a.
245+ x->key [i] = y->key [y->n -1 ];
246+ WRITE (x);
247+ delete_op (y.get (), x->key [i]);
248+ return ;
253249}
254250
255- if (i+1 < x->n ) { // case 2b
256- z = READ (x, i+1 );
257- std::auto_ptr<node_t > _z (z);
258- if (z->n >= T) {
259- x->key [i] = z->key [0 ];
260- WRITE (x);
261- delete_op (z, x->key [i]);
262- return ;
263- }
251+ std::auto_ptr<node_t > z (READ (x, i+1 ));
252+ if (z->n >= T) {// case 2b.
253+ x->key [i] = z->key [0 ];
254+ WRITE (x);
255+ delete_op (z.get (), x->key [i]);
256+ return ;
264257}
265258
266259if (y->n == T-1 && z->n == T-1 ) { // case 2c
@@ -277,8 +270,8 @@ namespace alg {
277270// mark free this node
278271z->flag |= MARKFREE;
279272y->n = y->n + z->n + 1 ; // size after merge
280- WRITE (z);
281- WRITE (y);
273+ WRITE (z. get () );
274+ WRITE (y. get () );
282275
283276// shift x
284277for (j=i;j<x->n -1 ;j++) {
@@ -288,7 +281,7 @@ namespace alg {
288281WRITE (x);
289282
290283// recursive delete k
291- delete_op (y, k);
284+ delete_op (y. get () , k);
292285return ;
293286}
294287
You can’t perform that action at this time.
0 commit comments