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;
}
/**