Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
#1

Перестановка заданных элементов списка - C++

02.03.2011, 22:03. Просмотров 542. Ответов 4
Метки нет (Все метки)

Всем доброго времени суток
У меня возник вопрос по двунаправленому списку!
есть такая функция
C++
1
 void per(list *n,list *m)
На вхо берет, например, 3 и 5 елемент списка, нужно переставить их местами
1 1
2 2
3 5
4 4
5 3
6 6
7 7
Помогите написать такую функцию

Добавлено через 49 минут
Я так понял там только указатели нужно поменять.....
Я уже стопку листиков изресовал, но так и не нашёл ответа
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2011, 22:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перестановка заданных элементов списка (C++):

Перестановка заданных элементов местами - C++
Здравствуйте, помогите, пожалуйста, с заданием. Я рандомно заполнил массив 10х10, потом мне нужно элементы 3, 4, 8, 9 (это их индексы,...

Перестановка узлов списка с данными значениями - C++
Добрый день. Надо написать процедуру в классе на вход которой даются 2 ЗНАЧЕНИЯ узлов, она должна поменять местами эти УЗЛЫ. Здесть надо,...

Перестановка элементов очереди - C++
Нужна ваша помочь ,задача такая ребят: Написать процедуру перестановки максимального и минимального элемента очереди ?

Перестановка элементов массива - C++
Я новичок в С++ , и мне нужна помощь опытных в этой сфере людей! Смотрите, мне надо переставить элементы массива в обратном порядке....

Перестановка элементов в массиве - C++
Помогите с задачкой: Дан размер массива =100 Диапазон значений от -50 до +50 Во всех последовательностях положительных чисел изменить...

Перестановка элементов массива - C++
Задан массив A размером n . Разместить наименьший элемент на первом месте , наименьший среди остальных - на последнем , наименьший среди...

4
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
02.03.2011, 22:25 #2
Да, нужно поменять только указатели.
0
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
02.03.2011, 23:15  [ТС] #3
silent_1991, не подскажешь как ето зделать?????
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
02.03.2011, 23:51 #4
Я так понимаю, на вход функции идут узлы списка? Если да, то менять так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Node *n_next = n->next;
Node *n_prev = n->prev;
Node *m_next = m->next;
Node *m_prev = m->prev;
 
m_next->prev = n;
n->next = m_next;
 
n_next->prev = m;
m->next = n_next;
 
n_prev->next = m;
m->prev = n_prev;
 
m_prev->next = n;
n->prev = m_prev;
Остаётся учесть случаи, когда один из элементов первый или последний (мне кажется, что там могут возникнуть исключительные ситуации из-за нулевых указателей, которые надо обработать отдельно, но утверждать не буду - хочется спать и уже лень проверять, так ли это).

Добавлено через 58 секунд
Ну а если не узлы, а значения в них, то надо сначала найти узлы n и m по этим значениям, а потом проделать данные операции.
1
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
03.03.2011, 10:57  [ТС] #5
silent_1991, спасибо большое за помощь Уже завтра буду розбиратся.....

Добавлено через 10 часов 33 минуты
всё розобрал ))))) Я не мог решить это задание , потому что не додумался создать
Node *n_next
Node *n_prev
Node *m_next
Node *m_prev
так всё работает
0
03.03.2011, 10:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2011, 10:57
Привет! Вот еще темы с ответами:

Перестановка элементов массива - C++
Подскажите пожалуйста, как переставить элементы массива в указанного по указанный!!!

Перестановка элементов массива - C++
Преобразовать массив таким образом, чтобы в его первой половине располагались элементы, стоящие на четных позициях, а во второй половине -...

Перестановка элементов массива - C++
Здравствуйте. Есть три массива: b = {2, 3, 4, 1, 5}; a2 = {2, 1, 3, 5, 4}; a = {5, 3, 2, 4, 1}; Нужно поменять элементы...

перестановка элементов массива - C++
задача такая, нужно сгенерировать массив(тип данных float), прочитав первый элемент и шаг прогрессии, изменить значения 3х элементов,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.