나는 포인터 만 조작하거나 키를 사용하지 않고 단일 정렬 목록을 버블 정렬을 사용하여 정렬하려고합니다.단일 연결 목록을 포인터로 정렬
다음은 for 루프와 루프에서 무한정 달라 붙습니다. 나는 이것이 왜 있는지 이해하지 못한다. 아무도 왜 목록의 끝 부분을 찾을 수 없는지 내게 설명 할 수 있습니까? 키 (데이터) 교환되도록 내가 코드를 변경하는 경우
Node* sort_list(Node* head)
{
Node * temp;
Node * curr;
for(bool didSwap = true; didSwap;) {
didSwap = false;
for(curr = head; curr->next != NULL; curr = curr->next) {
if(curr->key > curr->next->key) {
temp = curr;
curr = curr->next;
curr->next = temp;
didSwap = true;
}
cout << curr->next->key << endl;
}
}
return head;
}
는 다음 기능이 제대로 작동하지만 어떤 이유로 나는 단지 포인터를 조작하여 작동 할 수 없습니다입니다. ptr1->ptr2->ptr3
:
이 세 회원 목록을 보자 :
'노드'목록의 끝 부분에 있어야한다고 생각합니다. 마지막'Node' 엘리먼트를 사용한다면'curr-> next-> next'가 충돌 할 것입니다. – miqid