You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/07/08 00:24:40 UTC
svn commit: r1144081 -
/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/collections/FibonacciHeap.java
Author: simonetripodi
Date: Thu Jul 7 22:24:40 2011
New Revision: 1144081
URL: http://svn.apache.org/viewvc?rev=1144081&view=rev
Log:
added add(E) initial implementation
Modified:
commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/collections/FibonacciHeap.java
Modified: commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/collections/FibonacciHeap.java
URL: http://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/collections/FibonacciHeap.java?rev=1144081&r1=1144080&r2=1144081&view=diff
==============================================================================
--- commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/collections/FibonacciHeap.java (original)
+++ commons/sandbox/graph/trunk/src/main/java/org/apache/commons/graph/collections/FibonacciHeap.java Thu Jul 7 22:24:40 2011
@@ -40,6 +40,8 @@ public final class FibonacciHeap<E>
private int size = 0;
+ private int trees = 0;
+
private FibonacciHeapNode<E> root;
public FibonacciHeap()
@@ -47,7 +49,7 @@ public final class FibonacciHeap<E>
this(null);
}
- public FibonacciHeap( Comparator<? super E> comparator )
+ public FibonacciHeap( /* @Nullable */Comparator<? super E> comparator )
{
this.comparator = comparator;
}
@@ -62,7 +64,37 @@ public final class FibonacciHeap<E>
throw new NullPointerException();
}
- return false;
+ FibonacciHeapNode<E> node = new FibonacciHeapNode<E>( e );
+
+ if ( root == null )
+ {
+ root = node;
+ }
+ else
+ {
+ root.setPrevious( node );
+
+ int comparison;
+ if ( comparator != null )
+ {
+ comparison = comparator.compare( root.getValue(), e );
+ }
+ else
+ {
+ Comparable<? super E> rootComparable = (Comparable<? super E>) root.getValue();
+ comparison = rootComparable.compareTo( e );
+ }
+
+ if ( comparison < 0 )
+ {
+ root = node;
+ }
+ }
+
+ size++;
+ trees++;
+
+ return true;
}
/**