2017-12-10 3 views
-3

정렬 된 연결된 목록 함수를 재귀 적으로 작성하려고했습니다. 누구든지 저를 도울 수 있습니까? 나는 그 기능으로 아무데도 못 가고있다.C++에서 정렬 된 연결 목록 함수를 반복적으로 작성하려고 시도했습니다.

void LinkedList::insertRecurcive(Node* head, int data) 
{ 
if (head == NULL || !(head->Data < data)) 
    { 
     head->next = new Node;`` 
     head->next->Data = data; 
     head->next->next = NULL; 

    } 
    else 
    insertRecurcive(head->next, data); 


} 

void LinkedList::insert(int data) 
{ 

    insertRecurcive(head, data); 

} 
+1

여기에있는 어려운 부분은 다음'Node'를 반복하여 새로운'Node'를 삽입해야 할 때 이전의'Node'를 더 이상 가질 필요가 없으므로'next'와 연결할 수 있습니다. 연결된 목록을 유지하십시오. 이전 노드의'next'에 대한 참조를 전달하거나 다음 노드로 재귀하기 전에 다음'Node' 데이터를 테스트하십시오. – user4581301

답변

0

귀하의 코드 : 머리가 NULL 다음의 경우에도

if (head == NULL || !(head->Data < data)) 
    {  
     head->next = new Node;`` 
head->next->Data = data; 
head->next->next = NULL; 
} 

이> 머리 -을 할당이 실패합니다.

+0

나는 물어 보는 사람이 그들이 가지고있는 것이 무엇인지 알지 못한다고 생각한다. 확률이 매우 높기 때문에 질문을 던지고 있습니다. – user4581301

+0

죄송합니다. 귀하의 의견을 이해할 수 없습니다. 함수를 작성하는 동안 설명 할 수 있습니까? 그것은 매우 도움이 될 것입니다. –