데이터 구조 클래스에 대한 할당에 많은 문제가 있습니다. 나는 doublely 우선 순위 대기열을 구현해야하는데, doublely linkedList를 사용하지만, 교수님이 테스트를 위해 제공 한 코드에는 이상한 것들이 있습니다. 이해가 안되는 부분은 DoubleEndedPriorityQueue를 사용하지만 정수 대신 오브젝트를 추가하는 이유입니다. 내가 얻는 오류는 사실 인 add (object) 메서드가 없다는 것입니다.일반 양면 우선 순위 큐의 문제점
당신이 말하는 것처럼public class Test1ForAssign2 {
public static void main(final String[] args) {
final DoubleEndedPriorityQueue<Integer> sampleL = (DoubleEndedPriorityQueue<Integer>)new ListDoubleEndedPriorityQueue();
sampleL.add((Object)5);
sampleL.add((Object)12);
sampleL.add((Object)5);
sampleL.add((Object)1);
sampleL.add((Object)(-7));
sampleL.add((Object)3);
System.out.println("Priority Queue Contents: ");
System.out.println("Deleting: " + sampleL.deleteMin());
System.out.println("Deleting: " + sampleL.deleteMax());
}
public interface DoubleEndedPriorityQueue<AnyType>{
void makeEmpty ();
void add (AnyType x);
AnyType deleteMin ();
AnyType deleteMax ();
AnyType findMin ();
AnyType findMax ();
boolean isEmpty ();
}
감사합니다. @hugh 내가 생각했던 것입니다. 너 뭔가 다른 것을 도와 줄 수있어? 그는 또한 우리에게 다음과 같은 코드를주었습니다. 개인 Comparator super AnyType> cmp; 전용 노드 first = null; 개인 노드 마지막 = null; 하지만 나는 어떻게 비교기를 사용할지 전혀 모르겠다. 나는 cmp.compare (obj1, obj2)를 시도했지만 항상 nullpoint 예외를 주었고 두 객체가 모두 null이 아니라고 확신한다. Integer 클래스가 Comparator를 구현하지 않았기 때문에 그렇다고 생각합니다. 그렇다면 우리가 어떻게 그것을 수행 할 것으로 기대합니까? –
(일반적으로 한 곳에서 여러 질문을 게시하는 것은 좋지 않지만 몇 가지 지침을 제시하려고합니다) Integer는 Comparator를 구현하지 않지만 Comparable을 구현합니다. - 해당 항목을 검색하면 관련 항목을 찾을 수 있어야합니다. 어떻게 다른지. 인수의 하나가 널인 경우'compare'는 NPE를 던질 수 있습니다. 그렇지 않으면'compare'의 코드가 올바르지 않은 것으로 들립니다. 아마도 널 검사없이 널값 필드를 사용합니다. 디버거를 사용하고 있습니까? 하나를 사용하면 삶이 엄청나게 좋아질 것입니다. – hugh