|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.03.2020, 05:52 | #1 |
Новичок
Джуниор
Регистрация: 19.03.2020
Сообщений: 1
|
Рекурсия С++
Здравствуйте. Нужна помощь с рекурсией в Linked list.
Имеются: struct IntNode (private: int data; IntNode *next) и class IntList (private: IntNode *head). Нужно написать 2 программы которые будут совместно искать в List соответствующее значение и изменять все data в предыдущих nodes рекурсивно на количество node до указанного значения, а data после указанного значения оставлять неизменными. Напимер, list: 5->7->3->2->1->4 list.distanceFrom(2); list: 3->2->1->2->1->4 Я застряла на обновлении значений data. Мне нельзя использовать циклы в программе. Буду признательна, если подскажите как мне обновить значения data до указанного значения используя только рекурсию. Что у меня есть: void IntList:: distanceFrom(int key) { if (head == nullptr){ return; } searchAndModify(head, key); return; } int IntList::searchAndModify(IntNode *curr, int key) { int count = 0; if(curr->data != key && curr->next == nullptr){ curr->data = 1; return curr->data; } if(curr->data != key){ count = count +1; return searchAndModify(curr->next, key); curr->data = curr->data - count; } return curr->data; } |
25.03.2020, 19:09 | #2 |
Новичок
Джуниор
Регистрация: 25.03.2020
Сообщений: 2
|
Можно вот так попробовать. Или я не понял условия задачи
int IntList::searchAndModify(IntNode *curr, int key) { int count = 0; if(curr->data != key && curr->next == nullptr){ curr->data = 1; return 0; } if(curr->data != key){ count = searchAndModify(curr->next, key); if(count > 0) { curr->data = count; ++count; } return count; } return 1; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рекурсия | lialia | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 16.04.2013 22:24 |
Рекурсия | unbanned | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 19.01.2012 11:25 |
рекурсия | виктория23 | Помощь студентам | 1 | 12.01.2012 21:49 |
Рекурсия | dusya9992 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 29.08.2010 14:14 |
рекурсия | Lena neznayka | Помощь студентам | 2 | 16.06.2010 20:46 |