이 코드를 작성하여 링크 된 목록에서 최소 일련의 번호를 찾습니다.이중 링크 목록에서 작동하지 않는 최소 요소 찾기
public DLNode<T> getMinimum() {
if (isEmpty()) {
return null;
}
DLNode<T> curr = head;
DLNode<T> min = curr;
T temporaryMinimum = head.getElement();
while (curr.getElement() != null) {
if ((Integer) temporaryMinimum < (Integer) curr.getElement()) {
min = curr;
}
curr = curr.getNext();
}
return min;
}
그래서 같은 주 내에서 호출이 코드 블록
public static void getMinElement(){
int[] data = {2, 3, 5, 1, 6};
//Add elements to the list from array data
DoublyLinkedList<Integer> ll = new DoublyLinkedList<>();
for (int i = 0; i < data.length; i++) {
ll.AddLast(data[i]);
}
System.out.println("Size: " + ll.size);
System.out.println("Minimum Element is: " + ll.getMinimum());
}
사용하여 테스트입니다 : 그것은 오류를 던져하지 않습니다
getMinElement();
을하지만,에 들어갈 것으로 보인다 무한 루프 또는 무언가 (내가 시작할 때마다 얼마나 많은 CPU가 내 컴퓨터에서 사용되는지 판단하여).
내 IDE (IntelliJ IDEA)가 제어되지 않는 루프 또는 이와 유사한 오류 또는 경고를 표시하지 않는다는 점을 지적하고 싶습니다. 나는 지난 몇 일 동안 행운이없이 그것을 추론 해왔다. 이제 나는 아이디어가 없다.
도움을 주시면 감사하겠습니다.
편집 : 내 DLNode 클래스는 다음과 같습니다
class DLNode<T> {
DLNode<T> Element;
T data;
DLNode<T> next;
DLNode<T> prev;
DLNode(T data, DLNode<T> next, DLNode<T> prev) {
this.data = data;
this.next = next;
this.prev = prev;
}
T getElement() {
return data;
}
public DLNode<T> getPrev() {
return prev;
}
public void setPrev(DLNode<T> prev) {
this.prev = prev;
}
public DLNode<T> getNext() {
return next;
}
public void setNext(DLNode<T> next) {
this.next = next;
}
}
측면 점하십시오'Integer'에 제네릭 형식'T'를 캐스팅하는 것은 나에게 매우 잘못된 것 같습니다. – Dabiuteef
[LinkedList] (https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html)은 이중 연결 목록 구현입니다. 따라서 curr.getNext();를 실행하는 것보다 [listiterator]를 얻을 수없는 이유는 무엇입니까 (https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#listIterator int)) 반복하고 반복합니다. 'curr.getNext()'가 올바르지 않은 것 같습니다. –