Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Marinkin
0 / 0 / 0
Регистрация: 25.09.2010
Сообщений: 4
11.12.2010, 01:42     Переместить элемент в конец списка и вывести указатели на первый и последний элементы #1
Помогите, пожалуйста! Прошу вас о помощи в написании программы на С++...
Задача такова:
Дан указатель P0 на один из элементов непустого двусвязного списка. Переместить данный элемент в конец списка и вывести указатели на первый и последний элементы преобразованного списка. Операции выделения и освобождения памяти не использовать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 01:42     Переместить элемент в конец списка и вывести указатели на первый и последний элементы
Посмотрите здесь:

C++ Поменять местами первый и последний элементы списка и удалить их средне арифметическое
Переместить нулевые элементы в конец массива C++
C++ Надо удалить n-ный элемент списка, при том, что он не первый и не последний
C++ Поменять местами первый и последний элементы непустого списка
C++ Создать динамический список, поменять местами последний и первый элементы списка, предпоследний и второй и т.д.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Eliont
2 / 2 / 0
Регистрация: 10.12.2010
Сообщений: 29
11.12.2010, 12:37     Переместить элемент в конец списка и вывести указатели на первый и последний элементы #2
Есть указатели на структуры в конце и где-то внутри списка
У этих структур есть по два указателя - prev(предыдущий) и next(следующий).
Также есть указатели current - текущий(и перемещаемый) элемент и last - конец списка.

Можно рассматривать список как цепочку бусин с зажимами на полюсах.

1) перебрасываешь указатели соседних с перемещаемым элемента, так что они начинают указывать через него.
C++
1
2
3
                        
current->prev->next = current->next;//перебрасываение указателей
current->next->prev = current->prev;//через элемент для выключения его из цепи
2) Прицепляешь вытащенную "бусину" в конец.
C++
1
2
3
4
current->next = 0;//конец списка
current->prev = last;//бывший конец - предыдущий для этого
last->next = current;//ссылка на текущий
last = current;//теперь он - последний
Marinkin
0 / 0 / 0
Регистрация: 25.09.2010
Сообщений: 4
13.12.2010, 13:44  [ТС]     Переместить элемент в конец списка и вывести указатели на первый и последний элементы #3
Не получается у меня написать, я даже не знаю что куда вставлять и что за чем идет...
Eliont
2 / 2 / 0
Регистрация: 10.12.2010
Сообщений: 29
14.12.2010, 11:04     Переместить элемент в конец списка и вывести указатели на первый и последний элементы #4
Гм, ну тогда тебе в учебники за теорией или гугл по запросу "c++ списки" (за ней же).
А потом возвращайся ^_o и поробуй ещё раз.
Yandex
Объявления
14.12.2010, 11:04     Переместить элемент в конец списка и вывести указатели на первый и последний элементы
Ответ Создать тему
Опции темы

Текущее время: 00:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru