Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Рекурсивный вызов метода класса


Автор: zmaximka 26.8.2012, 18:33
Есть код для инверсии списка с помощью рекурсии. Поскажите как сделать данную функцию методом класса.

Код

List * reverse(List *e1)
{
        if (e1 == 0) return 0;
        if (e1->next == 0) return e1;
        List * rv = reverse(e1->next);
        e1->next->next = e1;
        e1->next = 0;
        return rv;
}


Хотелось бы что-то в духе

Код

class List
{
        Node *head;

        ...
        void reverse();
}

Автор: bsa 27.8.2012, 00:28
Почти тоже самое. Но у тебя должно быть два метода reverse. Один void reverse(), а второй Node* reverse(Node *el). Причем второй должен быть приватным. Первый просто вызывает второй с параметром head, а результат присваивает обратно head. Код второго почти полностью повторяет приведенный тобой пример.

Автор: zmaximka 27.8.2012, 13:52
Цитата(bsa @ 27.8.2012,  00:28)
Почти тоже самое. Но у тебя должно быть два метода reverse. Один void reverse(), а второй Node* reverse(Node *el). Причем второй должен быть приватным. Первый просто вызывает второй с параметром head, а результат присваивает обратно head. Код второго почти полностью повторяет приведенный тобой пример.

Спасибо. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)