001package cnslab.cnsnetwork; 002import cnslab.cnsmath.*; 003import java.util.Map; 004import java.util.TreeSet; 005import java.util.Iterator; 006import java.util.Arrays; 007import java.util.PriorityQueue; 008import java.io.PrintStream; 009/** 010 * Implementation of FiboQueue 011 * 012 * @author Yi Dong 013 */ 014public class FiboQueue<T extends Comparable<T> > implements Queue<T> 015{ 016 private FibonacciHeap<T> treeQueue = new FibonacciHeap<T>(); 017 018 /** 019 * @see cnslab.cnsnetwork.Queue#deleteItem(java.lang.Comparable) deleteItem 020 */ 021 public synchronized void deleteItem(T item) { 022 023// if(item.compareTo( treeQueue.peek())!=0) throw new RuntimeException("delete non fist item (input):"+item+" first item"+treeQueue.peek()); 024 if(item.compareTo((treeQueue.peekMin())) !=0 ) 025 { 026 System.out.println("not the same"); 027// treeQueue.delete(new FibonacciHeapNode<T>(item)); 028 } 029 else 030 { 031 treeQueue.popMin(); 032 } 033 } 034 035 /** 036 * @see cnslab.cnsnetwork.Queue#insertItem(java.lang.Comparable) insertItem 037 */ 038 public synchronized void insertItem(T item) { 039 treeQueue.add(item); 040 } 041 042 043 /** 044 * @see cnslab.cnsnetwork.Queue#firstItem() firstItem 045 */ 046 public synchronized T firstItem() { 047 return treeQueue.peekMin(); 048 } 049 050 /** 051 * show all the elements in the Queue in order 052 */ 053 public synchronized void show(PrintStream p) { 054// System.out.println(treeQueue.toString()); 055 } 056 057 public synchronized String show() { 058// System.out.println(treeQueue.toString()); 059 return ""; 060 } 061 062 public synchronized void clear(){ 063// treeQueue.clear(); 064 } 065}