Я пытаюсь распечатать свой список рекурсивно, но у меня проблемы с ним. Выход - бесконечность 2 ....... 2 ..... до моего компьютера.Печать LinkedList Рекурсивно с использованием C++ Часть 2
Моя рекурсивная функция выглядит следующим образом:
//void List::PrintListRecursively()
void List::PrintListRecursively(){
if (curr==NULL)
{
cout << "\n";
return;
}
cout << curr->data <<endl;
PrintListRecursively();
}
Моя основная функция заключается в следующем:
int main()
{
List myList;
myList.insertAtTail(2);
myList.insertAtTail(3);
myList.insertAtHead(0);
myList.insertAtHead(-1);
myList.insertAtHead(-2);
myList.PrintListRecursively();
}
Моя оригинальная рекурсивная функция была ниже код, но я не знаю, как передать параметр исходной функции, так как он является функцией void. Функция не должна быть недействительной, я просто не знаю, как передать указатель на функцию, особенно рекурсивно. Рекурсия всегда меня отбрасывает.
void List::PrintListRecursively(){
if (curr==NULL)
{
cout << "\n";
return;
}
cout << curr->data <<endl;
PrintListRecursively(curr->next);
}
кто-то предложил:
void List::PrintListRecursively(Node* curr)
, поскольку я использую ЬурейиЙ: ЬурейаЯ структуру узел * nodePtr; Я попытался это:
void List::PrintListRecursively(nodePtr curr)
но я получаю эту ошибку: Декларация несовместима с ничтожным Списком :: PrintListRecursively
Помогите пожалуйста
ли ваше объявление и соответствует определению для 'PrintListRecursively'? –
Этот вопрос почти идентичен вашему [другому вопросу] (http://stackoverflow.com/questions/20226797/print-linkedlist-recursively-using-c) - пожалуйста, придерживайтесь существующего вопроса. – user4815162342