재귀 함수를 호출하는 드라이버 함수를 작성해야합니다. 나는 내가 운전자 기능에서 무엇을해야하는지 궁금해하고 있었다.재귀를 사용하여 링크 된 목록을 역전하는 문제
이 프로그램은 연결된 목록을 역전합니다.
void invert_r()
{
//This is the driver function for recursive_invert
nodeType<Type> *p, *q;
q = first;
p = first;
recursive_invert(q, p);
}
nodeType<Type>* recursive_invert(nodeType<Type> *q, nodeType<Type> *p)
{
//Invert a linked list using recursion.
//DO NOT create any new node in your implementation
if(p -> link == NULL)
{
q -> link = p;
return p;
}
else
{
recursive_invert(p -> link, q) -> link = p;
}
return p;
}
하드 우리가 first'가 무엇인지 '볼 수없는 한 대답. 그렇지 않으면 모든 것이 잘 보입니다. 이 코드로 어떤 특수한 문제가 있습니까? –
@ g-makulik "first"는 연결된 목록의 첫 번째 요소입니다. 나는 드라이버 함수의 사용법과 그것을 사용하고 내 재귀 함수를 호출하는 방법에 대해 혼란 스럽다. ... –
함수의 출력은 먼저 반복적 인 방법으로 연결된리스트를 역으로한다. 재귀 적 호출을 위해 invert_r()을 구현하여 연결된 목록을 다시 변환하십시오. –