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

Тема в разделе "C/C++/C#", создана пользователем vladis222, 25 дек 2011.

  1. vladis222

    vladis222 Active Member

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

    mikhail404 Гость

    Пишите: mikhail_404@mail.ru
     
  3. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    пишешь функцию поиска элемента в списке.
    Если список пуст - возвращаешь пустой список в качестве результата.
    Список разделяешь на голову и хвост.
    ищешь голову в хвосте, если найдена - игнорируешь голову, а хвост используешь как аргумент в рекурсивном вызове
    если же элемент в хвосте не найден - то точно также рекурсивно вызываешь функцию для хвоста, а к результату, которая вернет функция, добавляешь голову.
    На Си мне писать лень, тем более, что сами вы не пытались, на прологе вот(можете попробовать перевести) :
    Код (Text):
    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 ).
     
Загрузка...
Похожие Темы - Динамические Структуры Данных
  1. Julia61
    Ответов:
    1
    Просмотров:
    1.228
  2. Rinulik
    Ответов:
    2
    Просмотров:
    1.390
  3. Omh
    Ответов:
    9
    Просмотров:
    5.169
  4. AvasKvas
    Ответов:
    25
    Просмотров:
    6.161
  5. morpheus
    Ответов:
    0
    Просмотров:
    1.934

Поделиться этой страницей