Author: elecharny
Date: Tue Jun 19 16:26:48 2012
New Revision: 1351767

URL: http://svn.apache.org/viewvc?rev=1351767&view=rev
Log:
o fixed some bugs in the Node.addAndSplit() method
o modified the dumpPage() method to get a better view o the tree

Modified:
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java
    labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java

Modified: 
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java
URL: 
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java?rev=1351767&r1=1351766&r2=1351767&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java 
(original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Leaf.java 
Tue Jun 19 16:26:48 2012
@@ -353,7 +353,28 @@ public class Leaf<K, V> extends BasePage
     {
         StringBuilder sb = new StringBuilder();
         
-        sb.append( tabs ).append( toString() );
+        sb.append( tabs );
+        
+        if ( nbElems > 0 )
+        {
+            boolean isFirst = true;
+            
+            for ( int i = 0; i < nbElems; i++ )
+            {
+                if ( isFirst )
+                {
+                    isFirst = false;
+                }
+                else
+                {
+                    sb.append( ", " );
+                }
+                
+                sb.append( "<" ).append( keys[i] ).append( "," ).append( 
values[i] ).append( ">" );
+            }
+        }
+        
+        sb.append( "\n" );
         
         return sb.toString();
     }

Modified: 
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
URL: 
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java?rev=1351767&r1=1351766&r2=1351767&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java 
(original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java 
Tue Jun 19 16:26:48 2012
@@ -274,20 +274,20 @@ public class Node<K, V> extends BasePage
             System.arraycopy( children, 0, newLeftPage.children, 0, middle + 1 
);
             
             // Copy the keys and the values in the right page up to the pos
-            System.arraycopy( keys, middle, newRightPage.keys, 0, pos - middle 
- 1 );
-            System.arraycopy( children, middle, newRightPage.children, 0, pos 
- middle - 1 );
+            System.arraycopy( keys, middle + 1, newRightPage.keys, 0, pos - 
middle - 1 );
+            System.arraycopy( children, middle + 1, newRightPage.children, 0, 
pos - middle - 1 );
             
             // Add the new element
-            newLeftPage.keys[pos] = pivot;
-            newLeftPage.children[pos] = leftPage;
-            newLeftPage.children[pos+1] = rightPage;
+            newRightPage.keys[pos - middle - 1] = pivot;
+            newRightPage.children[pos - middle - 1] = leftPage;
+            newRightPage.children[pos - middle] = rightPage;
             
             // And copy the remaining elements minus the new pivot
-            System.arraycopy( keys, pos, newLeftPage.keys, pos + 1, nbElems - 
pos - 1 );
-            System.arraycopy( children, pos, newLeftPage.children, pos + 2, 
nbElems - pos - 1 );
+            System.arraycopy( keys, pos, newLeftPage.keys, pos - middle, 
nbElems - pos );
+            System.arraycopy( children, pos, newLeftPage.children, pos + 1 - 
middle, nbElems - pos );
 
             // Create the result
-            InsertResult<K, V> result = new SplitResult<K, V>( keys[middle - 
1], newLeftPage, newRightPage );
+            InsertResult<K, V> result = new SplitResult<K, V>( keys[middle], 
newLeftPage, newRightPage );
             
             return result;
         }
@@ -355,16 +355,14 @@ public class Node<K, V> extends BasePage
         if ( nbElems > 0 )
         {
             // Start with the first child
-            sb.append( children[0].dumpPage( tabs + "    " ) ).append( "\n" );
+            sb.append( children[0].dumpPage( tabs + "    " ) );
             
             for ( int i = 0; i < nbElems; i++ )
             {
                 sb.append( tabs );
-                sb.append( "Node[" );
-                sb.append( super.toString() );
-                sb.append ( "] <" );
+                sb.append ( "<" );
                 sb.append( keys[i] ).append( ">\n" );
-                sb.append( children[i + 1].dumpPage( tabs + "    " ) ).append( 
"\n" );
+                sb.append( children[i + 1].dumpPage( tabs + "    " ) );
             }
         }
         



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to