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=