-14 / 1 / 0
Регистрация: 21.09.2015
Сообщений: 64
1

Переставить 2 элемента списка местами заданные по индексу

15.12.2016, 23:36. Показов 832. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
То, что есть на форуме, у меня не работает. Мне нужно использовать функции car и cdr. Совсем не понимаю, как сделать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2016, 23:36
Ответы с готовыми решениями:

Переставить 2 элемента списка местами заданные по индексу (ошибка)
Переставить 2 элемента списка местами заданные по индексу (номеру) func (defun swap (List i1...

Переставить местами заданные строки матрицы
Переставить местами заданные строки матрицы Составить программу обработки матрицы, в программе...

Удаление элемента из списка по индексу.
Надо удалить элемент из списка с индексом 1. using System; using System.Collections.Generic;...

Удаление элемента списка по индексу
Здравствуйте, отобразил список v-for ="(item, index) in items" :key ="index " @click...

1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,607
Записей в блоге: 13
16.12.2016, 09:51 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
24
25
26
27
;; вспомогательная функция, вырезающая из списка lst отрезок длины l с позиции n
 
(defun cut-list (lst n l) 
  (cond ((zerop l) nil)
        ((and (= n 1) (> l 0)) (cons (car lst) (cut-list (cdr lst) 1 (- l 1))))
        (t (cut-list (cdr lst) (- n 1) l))))
 
;; Решение
 
(defun task (lst p q)
  (cond ((= p q) lst)
        ((> p q) (task lst q p))
        (t  (let* ((ls (length lst))
                  (l (cut-list lst 1 (- p 1)))
                  (m (cut-list lst p (- q p)))
                  (r (cut-list lst q (- ls q -1))))
            (append l (list (car r)) (cdr m) (list (car m)) (cdr r))))))
 
==> TASK
 
(task '(1 2 3 4 5 6 7) 5 3)
 
==> (1 2 5 4 3 6 7)
 
(task '(1 2 3 4 5 6 7) 3 5)
 
==> (1 2 5 4 3 6 7)
0
16.12.2016, 09:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2016, 09:51
Помогаю со студенческими работами здесь

Удаление элемента из списка по его индексу
как удалить например, 6 элемент из этого списка это программа удаляет только первый ...

Поменять местами заданные элементы списка
Planet *Replace(Planet *planet) { int first = 0; int second = 0; cout << "Первое" << endl;...

Переставить элементы списка местами
Здравствуйте! Задача в перестановке элементов списка местами Значит хотел написать...

Переставить соседние элементы списка местами
a = for i in range(1, len(a), 2): a, a = a, a print(' '.join()) как тут уйти от цикла for,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru