1
저는 잠시 동안이 작업을 해왔고 무엇이 잘못되었는지를 파악할 수 없습니다. 이 addSorted 함수는 정렬 된 배열의 해당 위치에 올바른 값을 모두 추가하지만 목록의 앞에 0을 추가하면 프로그램이 종료되지 않고 결과가 표시되지 않습니다. 누구든지 이것이 왜 일어날 수 있는지에 대한 단서가 있습니까?링크 된 목록과 addSorted 함수 문제를 정렬했습니다.
void addSorted(Data * newData){
if(head == NULL) {
head = new LinkNode(newData);
return;
}
LinkNode * current = head;
LinkNode * previous = NULL;
while(current != NULL) {
if(newData->compareTo(current->data) == -1) {
LinkNode * newNode = new LinkNode(newData);
newNode->next = current;
if(previous == NULL) {
current->next = newNode;
}
else {
newNode->next = previous->next;
previous->next = newNode;
}
return;
}
previous = current;
current = current->next;
}
previous->next = new LinkNode(newData);
}
예. IT가 작동합니다. 정말 고맙습니다. 난 그냥 current-> next = newNode를 head = newNode로 변경해야했다. – BleuCheese
테디 베어를 찾아 문제의 원인을 설명하고 대부분의 오류를 발견 할 수 있습니다. 나는 테디 베어 대신 동료들을 사용합니다. 같은 결과입니다. :) –
http://c2.com/cgi/wiki?RubberDucking, http://en.wikipedia.org/wiki/Rubber_duck_debugging – sehe