package hjelpeklasser;
import java.util.*;
public class BinTrePrioritetsKø<T> implements PrioritetsKø<T>
{
private static final class Node<T>
{
private T verdi;
private Node<T> venstre, høyre;
private Node<T> forelder;
private Node(T verdi, Node<T> f)
{
this.verdi = verdi;
venstre = høyre = null;
forelder = f;
}
private Node(Node<T> f)
{
this(null,f);
}
}
private Node<T> rot;
private int antall;
private final Comparator<? super T> comp;
public BinTrePrioritetsKø(Comparator<? super T> c)
{
rot = null;
antall = 0;
comp = c;
}
public static <T extends Comparable<? super T>>
BinTrePrioritetsKø<T> naturligOrdenKø()
{
return new BinTrePrioritetsKø<>(Comparator.naturalOrder());
}
public static <T> BinTrePrioritetsKø<T> komparatorKø(Comparator<? super T> c)
{
return new BinTrePrioritetsKø<>(c);
}
@Override
public int antall()
{
return antall;
}
@Override
public boolean tom()
{
return antall == 0;
}
@Override
public void leggInn(T verdi)
{
throw new UnsupportedOperationException("Ikke laget ennå!");
}
@Override
public T kikk()
{
throw new UnsupportedOperationException("Ikke laget ennå!");
}
@Override
public T taUt()
{
throw new UnsupportedOperationException("Ikke laget ennå!");
}
@Override
public boolean taUt(T verdi)
{
throw new UnsupportedOperationException("Ikke laget ennå!");
}
@Override
public String toString()
{
throw new UnsupportedOperationException("Ikke laget ennå!");
}
@Override
public void nullstill()
{
rot = null; antall = 0;
}
} // BinTrePrioritetsKø