Our Blog

Обмен местами двух соседних элементов списка

И напоследок завершающая статья цикла про работу со списками в C++. Она будет посвящена обмену местами двух соседних элементов в однонаправленном циклическом списке. Хочу заметить, что именно соседних. Два элемента, которые не являются соседями, менять местами надо по-другому.

bool swap (Elem* &first, int search) {
if (!first) return false;
Elem* cur=first;
while ((cur->next!=first) && (cur->next->inf1!=search)) {
   Elem* a=cur->next;
   Elem* b=a->next;
   a->next=b->next;
   cur->next=b;
   b->next=a;
   return true;
}
return false;
}
Comments ( 0 )
    -->