0 / 0 / 0
Регистрация: 17.12.2013
Сообщений: 17
1

Слияние упорядоченных списков

12.05.2016, 13:06. Показов 4504. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны два упорядоченных по возрастанию числовых списка. Объединить их с сохранением упорядоченности.
Пример: (1 2 5 6 11) и (-1 0 3 4 7 15) должны дать (-1 0 1 2 3 4 5 6 7 11 15)
0
Лучшие ответы (1)
12.05.2016, 13:06
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.05.2016, 13:06
Ответы с готовыми решениями:

Слияние списков
Напишите функцию двух аргументов (f q w), где аргументы являются списками. Функция должна создавать список из двух заданных путем слияния,...

Образовать из элементов двух упорядоченных списков новый список, тоже упорядоченный
Даны два упорядоченных списка. Образовать из элементов этих списков новый список, также упорядоченный

Построение списков, упорядоченных по возрастанию
Определите функцию, принимающую на вход целое число n и возвращающую список, содержащий n элементов, упорядоченных по возрастанию. Список...

2
 Аватар для _sg
4706 / 4401 / 380
Регистрация: 12.05.2012
Сообщений: 3,100
12.05.2016, 13:15 2
Лучший ответ Сообщение было отмечено катринко как решение

Решение

Lisp
1
2
3
4
5
6
7
8
(defun a-merge (w v)
  (cond ((null w) v) ((null v) w)
        ((<= (car w) (car v)) (cons (car w) 
                             (a-merge (cdr w) v)))
        ((cons (car v) (a-merge w (cdr v))))))
 
> (a-merge '(1 4 5 6 12) '(2 3 4 5))
(1 2 3 4 4 5 5 6 12)
Добавлено через 19 секунд
Lisp
1
2
3
4
5
6
7
8
(defun a-merge (w v)
  (cond ((null w) v) ((null v) w)
        ((> (car w)) (cons (car v) 
                           (a-merge w (cdr v))))
        ((cons (car w) (a-merge (cdr w) v)))))
 
> (a-merge '(1 4 5 6 12) '(2 3 4 5))
(1 2 3 4 4 5 5 6 12)
Добавлено через 31 секунду
Lisp
1
2
3
4
5
(defun a-merge (w v) 
  (merge 'list w v #'<))
 
> (a-merge '(1 4 5 6 12) '(2 3 4 5))
(1 2 3 4 4 5 5 6 12)
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37570 / 20857 / 4283
Регистрация: 12.02.2012
Сообщений: 34,282
Записей в блоге: 14
12.05.2016, 15:35 3
Нерекурсивный вариант:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(defun merge (lst1 lst2)
  (let ((res nil)
        (a   nil)
        (b   nil))
    (setq a (car lst1) b (car lst2))
    (loop
        (cond ((null lst1) (return (append (reverse res) lst2)))
              ((null lst2) (return (append (reverse res) lst1)))
              ((> a b) (push b res) (setq lst2 (cdr lst2))(setq b (car lst2)))
              (t       (push a res) (setq lst1 (cdr lst1))(setq a (car lst1)))))))
 
==> merge
 
(merge '(1 2 5 8) '(-6 3 5 9))
 
==> (-6 1 2 3 5 5 8 9)
1
12.05.2016, 15:35
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2016, 15:35
Помогаю со студенческими работами здесь

Слияние списков
Вроде простая задача:Из двух списков сделать третий,который содержит общие элементы входных списков.Но вот знаний о прологе пока мало:(

Попарное слияние списков.
Даны два списка парной длины. Написать предикат, который строит из них список такой структуры: сначала два элемента из первого списка,...

Осуществить процедуру слияния двух упорядоченных списков
Здравствуйте, помогите пожалуйста написать код! Задание: Осуществить процедуру слияния двух упорядоченных списков Заранее...

Выполнить пересечение двух упорядоченных по возрастанию списков в третий
Необходимо сделать программу для Visual Prolog, которая выполняет пересечение двух упорядоченных по возрастанию списков - L1 и L2 в третий,...

Объединение (слияние, сложение) списков [Turbo Prolog]
concat_list_3(,,)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Сообщение Git "Pulling without specifying how to reconcile divergent branches is discouraged"
hw_wired 14.02.2025
При работе с системой контроля версий Git многие разработчики сталкиваются с предупреждающим сообщением "Pulling without specifying how to reconcile divergent branches is discouraged". Это. . .
Как настроить количество пробелов в отступах табов в Visual Studio Code
hw_wired 14.02.2025
Visual Studio Code предоставляет несколько гибких способов настройки табуляции, каждый из которых имеет свои преимущества. Самый простой и наглядный метод - через графический интерфейс настроек, где. . .
Что означает знак восклицания в TypeScript
hw_wired 14.02.2025
TypeScript - удивительный язык программирования, который предоставляет множество возможностей для работы с типами данных. Особый интерес вызывает оператор утверждения ненулевого значения, который. . .
Как свернуть/скрыть секции кода в Visual Studio Code
hw_wired 14.02.2025
Ежедневно мы работам с файлами, содержащими сотни и тысячи строк кода. Навигация по такому объему становится настоящим испытанием, особенно когда нужно быстро найти нужный метод или переменную. . . .
Автоматическое создание файла requirements.tx­t в Python
hw_wired 14.02.2025
Дружелюбная среда для разработки на Python, один из самых широко используемых языков программирования, состоит не только из самого кода, но и целого ряда важных компонентов. И если вы когда-нибудь. . .
Передача переменных окружения в контейнер Docker
hw_wired 14.02.2025
При работе с Docker контейнерами возникает необходимость передать различные настройки и конфигурационные параметры - от строк подключения к базам данных до API ключей. И хотя можно жестко прописать. . .
Отличия Constructor и ngOnInit в Angular
hw_wired 14.02.2025
Разработка компонентов в Angular - непростая задача, особенно когда дело доходит до правильной инициализации и управления их жизненным циклом. Каждый разработчик рано или поздно сталкивается с. . .
Ошибка "Transport security has blocked a cleartext HTTP" в iOS
hw_wired 14.02.2025
В iOS-разработке часто возникают неожиданные препятствия, и одним из самых распространенных является сообщение об ошибке "Transport security has blocked a cleartext HTTP". Эта ошибка появляется,. . .
Ошибка "Cleartext HTTP traffic not permitted" в Android
hw_wired 13.02.2025
При разработке Android-приложений можно столнуться с неприятной ошибкой "Cleartext HTTP traffic not permitted", которая может серьезно затруднить отладку и тестирование. Эта проблема особенно. . .
Изменение версии по умолчанию в NVM
hw_wired 13.02.2025
Node Version Manager, или коротко NVM - незаменимый инструмент для разработчиков, использующих Node. js. Многие сталкивались с ситуацией, когда разные проекты требуют различных версий Node. js,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru