Вопросы

Рекурсивная функция printLinkedList, требующая печати (пустая строка). в до

void printLinkedList(node *head)
{

    if (head == NULL)
    {
        printf("(empty string)");
        return;
    }

    printf("Data: %d\n", head->data);
    printLinkedList(head->next);
}

Проблема в том, что если head не равен NULL, он прекрасно распечатает связанный список, но в самом конце он входит в if(head == NULL), потому что это рекурсивная функция, и печатает «(пустая строка)» для любой связанный список (пустой или нет). Я хочу напечатать «(пустая строка)», только если она изначально пуста. Как бы я закодировал это?

Вы уверены, что хотите использовать рекурсию для этого? (Это обучающее упражнение?)   —  person DJSweetness    schedule 30.10.2015

Ну, это было намного проще как итеративная функция, но нас попросили написать ее рекурсивно, чтобы лучше понять и попрактиковаться в рекурсии, чтобы ответить на ваш вопрос, да, это учебное упражнение.   —  person DJSweetness    schedule 30.10.2015

Читать:
Указатель на функцию как член класса

Похожие записи

Почему мой многоступенчатый полный конвейер yaml azure DevOps прерывается при перемещении в шаблон?

admin

‘факторы с одинаковыми уровнями’ в матрице путаницы

admin

Как вы вызываете несколько файлов из командной строки в свое приложение?

admin

Типы накопительных сборок: критическая ошибка «Неожиданный токен»

admin

Скачать все ссылки с любой страницы

admin

Как сохранить ответ JSON от входа пользователя в Core Data для отслеживания состояния пользователя в Swift?

admin