![]() |
Перестановка элементов списка
Уже третий день думаю над одной из лабораторных работ. Задание огромное, у меня уже мозги поплавились, а одного элемента всё ещё не хватает, для того, чтобы закончить работу.
Не могу понять как ссылке на следующий элемент списка присвоить значение ссылки на послеследующий, а ссылке на послеследующий - значение ссылки на предыдущий. Т.е. логику перестановки двух соседних элементов в односвязном/двусвязном списке я понимаю, но не могу понять как именно осуществить это. Препод на больничном, от одногруппников толку никакого. Программирую на Си, но кое-что разрешили взять из С++. Объясните пожалуйста. Если что, вот мой список, точнее его объявление. После он был заполнен указателями на элементы другой структуры (проблем с этим не было) Код:
struct STList{char *N;char *group;char *o;STList *Next;STList *Prev;} STL; Код:
void EXC1(void) |
Ошибка в логике. Если мысленно пронумеровать элементы, то мы получим
Код:
x=Head; p=Head; // x и p содержат 0-вые элементы |
для перестановки 1 и 2 элементов
Код:
x = Head; |
ViRTaCe, mrcnn, спасибо вам, что откликнулись.
ViRTaCe, да, надо мне внимательней быть. На самом деле выглядит глупо. mrcnn, спасибо большое за код, правда там одна строка в конце выпала - присвоение Head значения p - но это, вероятно, механическая ошибка. Теперь всё работает:) |
Время: 09:57. |
Время: 09:57.
© OSzone.net 2001-