Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 15

Преобразование списка в множество, работа с деревьями

04.11.2013, 17:29. Показов 2016. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1.Опре-ть функцию МНОЖ-ВО, преобразующую список в множество.
2.Опред-ть функцию (ДОБАВЬ а дерево), которая добавляет в упорядоч. дерево (дерево) элемент а.
(Помощ: копир-ть дерево по пути поиска и подправлять нужное поддерево).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2013, 17:29
Ответы с готовыми решениями:

Преобразование списка в множество
Здравствуйте! Пытаюсь преобразовать список элементов в множество, причем список может содержать другие списки: (A B (A C (X B Y) A) D)...

Работа с деревьями
Здравствуйте! Можете подсказать класс, с помощью которого можно работать с деревьями?

Работа с деревьями
RECORD * tree(int k) { RECORD *newnode; int nl,nr;//левое и правое поддерево if(k<=0) newnode=0; else { nl = k/2; nr...

7
 Аватар для _sg
4707 / 4402 / 380
Регистрация: 12.05.2012
Сообщений: 3,101
04.11.2013, 17:44
Лучший ответ Сообщение было отмечено как решение

Решение

Lisp
1
2
3
4
5
6
7
8
9
(defun dump-duplicates (w)
  (when w ((lambda (a d)
             (if (member a d)
                 (dump-duplicates d)
                 (cons a (dump-duplicates d))))
           (car w) (cdr w))))
 
> (dump-duplicates '(1 2 3 4 5 1 2))
(3 4 5 1 2)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
(defun dump-duplicates (w &aux (a (car w)) (d (cdr w)))
  (when w (if (member a d)
              (dump-duplicates d)
              (cons a (dump-duplicates d)))))
 
> (dump-duplicates '(1 2 3 4 5 1 2))
(3 4 5 1 2)
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
(defun dump-duplicates (w)
  (when w (if (member (car w) (cdr w))
              (dump-duplicates (cdr w))
              (cons (car w) (dump-duplicates (cdr w))))))
 
> (dump-duplicates '(1 2 3 4 5 1 2))
(3 4 5 1 2)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
(defun dump-duplicates (w)
  (cond ((null w) nil)
        ((member (car w) (cdr w)) (dump-duplicates (cdr w)))
        (t (cons (car w) (dump-duplicates (cdr w))))))
 
> (dump-duplicates '(1 2 3 4 5 1 2))
(3 4 5 1 2)
4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
04.11.2013, 20:04
Лучший ответ Сообщение было отмечено как решение

Решение

2)

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(defun add-in-tree (tree n)
  (cond ((null tree) (list n nil nil))
        ((> n (car tree)) (list (car tree) (cadr tree) (add-in-tree (caddr tree) n)))
        (t (list (car tree) (add-in-tree (cadr tree) n) (caddr tree)))))
 
==> add-in-tree
 
(setq tree nil)
 
==> NIL
Создана глобальная переменная tree
 
(setq tree (add-in-tree tree 1))
 
==> (1 NIL NIL)
 
(setq tree (add-in-tree tree 2))
 
==> (1 NIL (2 NIL NIL))
 
(setq tree (add-in-tree tree -2))
 
==> (1 (-2 NIL NIL) (2 NIL NIL))
3
0 / 0 / 0
Регистрация: 10.10.2013
Сообщений: 15
07.11.2013, 19:21  [ТС]
3. Создать глобальную переменную DAILY-PLANET, которая содержит следующую таблицу:
((olsen jimmy 123-76-4535 cub-reporter)
(kent clark 089-52-6787 reporter)
(lane lois 951-26-1438 reporter)
(white perry 355-16-7439 editor))
Использовать функцию MAPCAR, чтобы извлечь из таблицы спи-
сок номеров социального страхования.
0
 Аватар для _sg
4707 / 4402 / 380
Регистрация: 12.05.2012
Сообщений: 3,101
07.11.2013, 19:26
Лучший ответ Сообщение было отмечено как решение

Решение

Lisp
1
2
3
4
5
6
7
(defparameter daily-planet '((olsen jimmy 123-76-4535 cub-reporter)
(kent clark 089-52-6787 reporter)
(lane lois 951-26-1438 reporter)
(white perry 355-16-7439 editor)))
 
> (mapcar #'caddr daily-planet)
(|123-76-4535| |089-52-6787| |951-26-1438| |355-16-7439|)
4
493 / 426 / 56
Регистрация: 29.04.2011
Сообщений: 443
07.11.2013, 20:28
Лучший ответ Сообщение было отмечено как решение

Решение

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(defun MAKE-SET (l)
    (cond
        ((null l) nil)
        ((null (DIG (cdr l) (car l))) (cons (car l) (MAKE-SET (cdr l))))
        (t (MAKE-SET (cdr l)))))
 
(defun DIG (l x)
    (cond
        ((null l) nil)
        ((equal (car l) x) t)
        (t (DIG (cdr l) x))))
 
(MAKE-SET '(a b c 1 b c d 2 1))
 
==> (a b c d 2 1)
3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
07.11.2013, 20:42
Лучший ответ Сообщение было отмечено как решение

Решение

Еще два способа устранения дубликатов:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
(defun make-set (lst &optional r)
  (cond ((null lst) r)
        ((member (car lst) r) (make-set (cdr lst) r))
        (t (make-set (cdr lst) (cons (car lst) r)))))
 
==> make-set
 
(make-set '(1 2 3 1 2 3 a b c a b c))
 
==> (c b a 3 2 1)
 
(defun make-set (lst)
  (let ((r nil))
    (dolist (i lst r)
      (unless (member i r) (push i r)))))
 
==> make-set
 
(make-set '(1 2 3 1 2 3 a b c a b c))
 
==> (c b a 3 2 1)
3
1075 / 968 / 113
Регистрация: 04.11.2012
Сообщений: 1,013
07.11.2013, 22:38
Лучший ответ Сообщение было отмечено как решение

Решение

Ну и еще один.
Lisp
1
2
3
4
5
6
7
8
(defun setof-h (w &aux result (ht (make-hash-table)))
  (dolist (i w)
    (setf (gethash i ht) 1))
  (maphash #'(lambda (key val) (declare (ignore val)) (push key result)) ht)
  result)
 
> (setof-h '(1 3 a 2 1 b 2 a))
(b a 3 2 1)
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.11.2013, 22:38
Помогаю со студенческими работами здесь

Работа с деревьями
Здравствуйте, помогите пожалуйста. 1. Описать функцию которая: a) печатает узлы непустого дерева при обходе слева направо; б) удаляет...

Работа с xml деревьями
есть строка в виде xml, интересует как взять из дерева объектов родителя и всех его потомков, в виде дерева и превратить в строку, т.е....

Работа с бинарными деревьями
помогите написать прогу: для произвольного дерева вывести все вершины выше заданного уровня, уровень вводится пользователем.

Работа с нагруженными деревьями
здравствуйте,собственно возникла ошибка в функции заполнения нагруженного дерева Суть задачи состоит в том,что у нас есть файл со...

Работа с Б-деревьями - расщепление страницы
Я понятия не имею что такое Б-деревья и в Интернете толком ничего путного нет а мне надо сделать лабораторную Реализовать алгоритм...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru