Консультация № 108512
08.11.2007, 03:29
0.00 руб.
0 1 1
здравствуйте!очень нужна помощь: как перегруппировать элементы непустого двусвязного списка, без применения операций выделения и высвобождения памяти и не изменяя поля с данными?

Приложение:
очень срочно!)

Обсуждение

Неизвестный
08.11.2007, 11:50
общий
это ответ
Здравствуйте, костин алексей викторович!
чтобы изменить список без применения операций в памяти и не изменяя поля с данными - используйте указатели. Двусвязный список - это набор узлов, каждый из которых имеет указатель на "следующий" и "предыдущий" элементы. Указатели в данном случае - это не поля с данными. Переставляя эти указатели, вы можете "перегруппировать" элементы списка. Вы не указали, каким именно образом нужно перегруппировать элементы. Скорее всего вам понадобится один временный указатель для того, чтобы менять пойнтеры местами. Например
Node* pNodeTemp = NULL;

О списках на С++ очень хорошо написано по этой ссылке(только там используется односвязный список, но есть метод для обращения к предыдущему элементу):
http://progs.biz/cpp/cpp/lessons/028.aspx

Также пример запроса в поиск:
http://www.google.md/search?hl=ru&q=%D0%B4%D0%B2%D1%83%D1%81%D0%B2%D1%8F%D0%B7%D0%BD%D1%8B%D0%B9+%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA+C&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=
Форма ответа