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


Reply via email to