Camaro
03-06-2013, 19:50
Уже третий день думаю над одной из лабораторных работ. Задание огромное, у меня уже мозги поплавились, а одного элемента всё ещё не хватает, для того, чтобы закончить работу.
Не могу понять как ссылке на следующий элемент списка присвоить значение ссылки на послеследующий, а ссылке на послеследующий - значение ссылки на предыдущий. Т.е. логику перестановки двух соседних элементов в односвязном/двусвязном списке я понимаю, но не могу понять как именно осуществить это.
Препод на больничном, от одногруппников толку никакого. Программирую на Си, но кое-что разрешили взять из С++.
Объясните пожалуйста.
Если что, вот мой список, точнее его объявление. После он был заполнен указателями на элементы другой структуры (проблем с этим не было)
struct STList{char *N;char *group;char *o;STList *Next;STList *Prev;} STL;
STList *Head=NULL;
Тут функция для перестановки 1 и 2 элементов. Естественно, нерабочая. Глаз замылился и уже не вижу в чём дело
void EXC1(void)
{
STList *x=new STList; STList *p=new STList;
x=Head; p=Head;
x=x->Next;
p->Next=x->Next;
x->Next=p;
}
Не могу понять как ссылке на следующий элемент списка присвоить значение ссылки на послеследующий, а ссылке на послеследующий - значение ссылки на предыдущий. Т.е. логику перестановки двух соседних элементов в односвязном/двусвязном списке я понимаю, но не могу понять как именно осуществить это.
Препод на больничном, от одногруппников толку никакого. Программирую на Си, но кое-что разрешили взять из С++.
Объясните пожалуйста.
Если что, вот мой список, точнее его объявление. После он был заполнен указателями на элементы другой структуры (проблем с этим не было)
struct STList{char *N;char *group;char *o;STList *Next;STList *Prev;} STL;
STList *Head=NULL;
Тут функция для перестановки 1 и 2 элементов. Естественно, нерабочая. Глаз замылился и уже не вижу в чём дело
void EXC1(void)
{
STList *x=new STList; STList *p=new STList;
x=Head; p=Head;
x=x->Next;
p->Next=x->Next;
x->Next=p;
}