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]