0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 9
|
||||||
1 | ||||||
Написать рекурсивную функцию, удаляющую x (последнее вхождение) из списка l11.11.2016, 16:36. Показов 2465. Ответов 22
Метки нет Все метки)
(
Прочитать из файла значение переменной x. Написать рекурсивную функцию, удаляющую x
(последнее вхождение) из списка l. Список задать при вызове функции.
0
|
|
11.11.2016, 16:36 | |
Ответы с готовыми решениями:
22
Написать рекурсивную функцию, удаляющую из многоуровневого списка символы Описать рекурсивную процедуру удаляющую из списка первое вхождение элемента Написать программу, удаляющую из строки первое и последнее вхождение заданной подстроки
|
11.11.2016, 16:44 | 2 |
Так надо просто
![]()
0
|
12.11.2016, 10:20 | 4 |
Catstail,
1) ваш код удаляет последний элемент списка безо всяких проверок на равенство х 2) согласен, что можно его чуть допилить и написать примерно так - бежим по списку, если текущий элемент = х - то смотрим, есть ли х в хвосте списка - и если есть, то пропускаем и бежим дальше, а если нет - то удаляем и останавливаемся. НО! Будет ли такой вариант оптимальнее моего? Имхо - нет. Ибо если у нас 20 вхождений х в список, мы будем 20 раз пробегать и искать его в хвосте. А в моем варианте сложность 3n - реверс + пробежка поиска первого х + реверс.
1
|
4687 / 4383 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
|
||||||
12.11.2016, 10:21 | 5 | |||||
как вариант:
0
|
4687 / 4383 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
|
||||||||||||||||
12.11.2016, 10:41 | 7 | |||||||||||||||
2
|
12.11.2016, 10:49 | 8 | |||||
_sg, ваш средний вариант пишется с парой улучшений:
2
|
4687 / 4383 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
|
||||||
12.11.2016, 11:10 | 9 | |||||
_Ivana, спасибо, как вариант:
1
|
12.11.2016, 11:16 | 10 | ||||||||||
_sg, никак не хотите объединить кейсы конса с продолжением в один? Или таким образом ограничиваете пробежку member когда голова не равна е? Мой кот эксплуатирует ленивость форы and, которая у меня определена как
2
|
4687 / 4383 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
|
||||||
12.11.2016, 11:17 | 11 | |||||
1
|
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 9
|
|
12.11.2016, 11:54 [ТС] | 12 |
А вы можете написать задачу полностью,чтобы она брала элементы из файла)Прочитать из файла значение переменной x. Написать рекурсивную функцию, удаляющую x
(последнее вхождение) из списка l. Список задать при вызове функции. Реализовать функцию в четырёх вариантах с использованием обязательных, необязательных, остаточных, именованных параметров. Исходные данные прочитать из файла
0
|
4687 / 4383 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
|
|||||||||||
12.11.2016, 12:52 | 13 | ||||||||||
d:/test.txt
a a
1
|
Модератор
![]() ![]() |
||||||
13.11.2016, 13:10 | 14 | |||||
_Ivana, а, да... Ваша правда.
Добавлено через 23 часа 39 минут За два полных прохода по списку:
2
|
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 9
|
||||||
14.11.2016, 15:09 [ТС] | 16 | |||||
0
|
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 9
|
||||||
14.11.2016, 18:09 [ТС] | 18 | |||||
Скажите,а вы можете немного пояснить мне свою функцию! Я на начальном этапе обучения,и мы пока некоторыми понятиями не оперируем)прошу вас сделать комментарии.
0
|
Модератор
![]() ![]() |
||||||||||||||||
14.11.2016, 18:30 | 19 | |||||||||||||||
Проще не использовать локальные функции (labels), а сначала написать две вспомогательные функции:
1) Поиск позиции последнего вхождения атома в список:
2) Удалить из списка n-й по счету (с нуля) элемент. Это совсем просто:
0
|
0 / 0 / 0
Регистрация: 11.11.2016
Сообщений: 9
|
|
14.11.2016, 18:52 [ТС] | 20 |
Спасибо! А теперь мне нужно их написать так,чтобы вся программа брала данные из файла)
0
|
14.11.2016, 18:52 | |
Помогаю со студенческими работами здесь
20
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |