• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Динамические Структуры Данных В Языке Си

  • Автор темы vladis222
  • Дата начала
V

vladis222

Объясните пож-та, вот у меня задание, нужно создать новый список из входного списка, исключая повторяющиеся элементы. Например, L1=(b,a,c,a) формируется список L2(b,c). Каков порядок действия работы с односвязными списками?Просто в методичке там такой огромный и непонятный, код что мама не горюй)))
 
M

mikhail404

Объясните пож-та, вот у меня задание, нужно создать новый список из входного списка, исключая повторяющиеся элементы. Например, L1=(b,a,c,a) формируется список L2(b,c). Каков порядок действия работы с односвязными списками?Просто в методичке там такой огромный и непонятный, код что мама не горюй)))
Пишите: mikhail_404@mail.ru
 
R

rrrFer

пишешь функцию поиска элемента в списке.
Если список пуст - возвращаешь пустой список в качестве результата.
Список разделяешь на голову и хвост.
ищешь голову в хвосте, если найдена - игнорируешь голову, а хвост используешь как аргумент в рекурсивном вызове
если же элемент в хвосте не найден - то точно также рекурсивно вызываешь функцию для хвоста, а к результату, которая вернет функция, добавляешь голову.
На Си мне писать лень, тем более, что сами вы не пытались, на прологе вот(можете попробовать перевести) :
Код:
member( [H|_], H ):-!. 
member( [_|T],E ):-		
member(T,E).
del( [], [] ).		
del( [H|T], R ) :-	
member( T, H ),!,
del( T, R ).
del( [H|T], [H|R] ):-
del( T, R ).
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!