0 / 0 / 0
Регистрация: 05.05.2021
Сообщений: 3
|
||||||
1 | ||||||
Объединение двух списков в один с общими элементами05.05.2021, 22:28. Показов 1116. Ответов 7
Ребят, помогите пожалуйста.
Само задание: Написать программу, содержащую процедуру, которая формирует список M, включив в него по одному разу элементы, которые входят одновременно в оба списка M1 и M2. В чём проблема. Функция есть (unification), но работает она некорректно. Например, в первом списке 4 нуля, а во втором 2 нуля. тогда в списке M должно быть записано 2 нуля, но у меня запишутся все 4, так как ищу элементы из 1-го списка во 2-м списке. Появились мысли насчёт подсчёта количества каждой из цифр и как-то это использовать. В общем, буду благодарен за помощь.
0
|
05.05.2021, 22:28 | |
Ответы с готовыми решениями:
7
Объединение двух связных списков в один Написать программу объединение двух списков в один Объединение двух и более двусвязных списков в один Объединение двух упорядоченных списков A и B в один упорядоченный список С |
0 / 0 / 0
Регистрация: 05.05.2021
Сообщений: 1
|
|
05.05.2021, 22:37 | 2 |
Бог тебе в помощь!
0
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
05.05.2021, 22:52 | 3 |
Для начала - оба исходных списка должны быть отсортированы по-возрастанию. Это так?
0
|
Комп_Оратор)
|
|
05.05.2021, 23:39 | 4 |
Kotsik, в задании нет задачи создать сам по себе список (контейнер). Это логично так как иначе оно выглядело бы как "1. Построить хлеб завод, 2. Выпечь хлеб, 3. Завести продукт в магазин. 4. Пойти за хлебом и подарить продавщице бублик."
Список есть в стандартной библиотеке. Я бы создал три списка целых чисел. Два заполнил бы тестовыми наборами значений. Тестовые наборы содержат одинаковые значения среди прочих. А третий - пустой, заполнял бы идя по самому длинному из 2 предыдущих и проверяя: 1. есть ли во втором исходном списке повтор 2. есть ли такое значение в результирующем (не было ли оно добавлено ранее). При этом задание допускает повторы и в пределах каждого из исходных списков, кстати.
1
|
0 / 0 / 0
Регистрация: 05.05.2021
Сообщений: 3
|
|
06.05.2021, 00:17 [ТС] | 5 |
Библиотеку использовать нельзя. Это оговорка препода.
Добавлено через 1 минуту Для начала - оба исходных списка должны быть отсортированы по-возрастанию. Это так? В условии это не оговорено Добавлено через 2 минуты Да, повторы возможны. Вы написали условия добавления, а что делать при их выполнении? Добавлять соответственно в третий - результирующий - список
0
|
Комп_Оратор)
|
|
06.05.2021, 00:33 | 6 |
Впрочем вы сами ответили на свой вопрос. Хотя я это написал. Грустно вот что:
В вашем задании (как вы упорно утверждаете, но в тексте этого нет) совмещены ортогональные задачи. Создание контейнера - списка. И задача работы со списками, которая мало зависит (вообще не зависит) от реализации списка. Kotsik, не стыкуется с условием, всё едино. Если: То ноль должен быть в результирующем списке M единожды. Думаю, если решать такие задачи, то научиться не судьба. Локальность, модульность, "разделяй и властвуй", это о мухах и котлетах. Не получится качественно понять поиск, сортировку, операции множеств (объденение, пересечение, вычитание и пр.), работу с графами вообще и деревьями в частности и тп. соединяя всё в кучу.
1
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
06.05.2021, 09:49 | 7 |
Эта задача эффективно решается только для сортированных последовательностей. Для неотсортированных сложность алгоритма будет N-квадрат, а то и больше.
1
|
0 / 0 / 0
Регистрация: 05.05.2021
Сообщений: 3
|
||||||
06.05.2021, 10:48 [ТС] | 8 | |||||
Благодарю вас за информацию и пояснения.
Добавлено через 40 минут Всё получилось. Я очень невнимательный. В условии написано, что элементы должны быть включены единожды. Спасибо ещё раз всем за инфу. По итогу, функция объединения у меня выглядит так.
0
|
06.05.2021, 10:48 | |
06.05.2021, 10:48 | |
Помогаю со студенческими работами здесь
8
Объединение двух списков в один без повтора элементов (С++) Вывести сумму неповторяющихся элементов, являющихся общими для данных двух списков. Заполнить третий стек общими элементами для первых двух стеков Как из двух списков сделать один список кортежей/списков Объединение списков в один Объединение, пересечение и разность списков в один Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |