Fixato bug e implementato alcune funzioni.

This commit is contained in:
2014-06-01 18:16:43 +02:00
parent 015d8cac76
commit e53f98a3a8
31 changed files with 910 additions and 151 deletions

View File

@@ -3,7 +3,7 @@ package priorityqueue;
import priorityqueue.Entry;
import priorityqueue.PriorityQueue;
import java.security.InvalidKeyException;
import exceptions.InvalidKeyException;
/**
* Created with MONSTER.

View File

@@ -1,7 +1,7 @@
package priorityqueue;
import exceptions.EmptyPriorityQueueException;
import java.security.InvalidKeyException;
import exceptions.InvalidKeyException;
/**
* Created with xgiovio.macbookair.

View File

@@ -6,7 +6,7 @@ import exceptions.InvalidEntryException;
import position.Position;
import position.utility.DNode;
import java.security.InvalidKeyException;
import exceptions.InvalidKeyException;
import java.util.Comparator;
import java.util.Iterator;

View File

@@ -5,7 +5,7 @@ import position.NodePositionList;
import position.Position;
import utility.DefaultComparator;
import java.security.InvalidKeyException;
import exceptions.InvalidKeyException;
import java.util.Comparator;
import java.util.Iterator;

View File

@@ -5,7 +5,7 @@ import position.NodePositionList;
import position.Position;
import utility.DefaultComparator;
import java.security.InvalidKeyException;
import exceptions.InvalidKeyException;
import java.util.Comparator;
import java.util.Iterator;

View File

@@ -6,7 +6,7 @@ import priorityqueue.AdaptablePriorityQueue;
import priorityqueue.Entry;
import priorityqueue.MyEntry;
import java.security.InvalidKeyException;
import exceptions.InvalidKeyException;
import java.util.Comparator;
/**

View File

@@ -4,11 +4,12 @@ import position.Position;
import priorityqueue.Entry;
import priorityqueue.MyEntry;
import priorityqueue.PriorityQueue;
import stack.NodeStack;
import tree.binarytree.heap.ArrayListCompleteBinaryTree;
import tree.binarytree.heap.CompleteBinaryTree;
import utility.DefaultComparator;
import java.security.InvalidKeyException;
import exceptions.InvalidKeyException;
import java.util.Comparator;
@@ -28,7 +29,7 @@ public class HeapPriorityQueue<K,V> implements PriorityQueue<K,V> {
comp = c;
}
//elementi gia' ordinati
public HeapPriorityQueue (K k[], V v[], Comparator<K> C){
heap = new ArrayListCompleteBinaryTree<Entry<K,V>>();
comp = C;
@@ -37,11 +38,22 @@ public class HeapPriorityQueue<K,V> implements PriorityQueue<K,V> {
} else {
NodeStack<ArrayListCompleteBinaryTree.BTPos<Entry<K, V>>> s = new NodeStack<ArrayListCompleteBinaryTree.BTPos<Entry<K, V>>>();
for (int i = 0; i < k.length; i++) {
heap.add(new MyEntry<K, V>(k[i],v[i])); // gia' ordinati. evitiamo l'upheap
ArrayListCompleteBinaryTree.BTPos<Entry<K, V>> t = (ArrayListCompleteBinaryTree.BTPos<Entry<K, V>>) heap.add(new MyEntry<K, V>(k[i], v[i]));
s.push(t);
}
for (;!s.isEmpty();){
ArrayListCompleteBinaryTree.BTPos<Entry<K, V>> t = s.pop();
if (!heap.isExternal(t))
downHeap(t);
}
}
}
public void setComparator(Comparator<K> c) throws IllegalStateException {