И напоследок завершающая статья цикла про работу со списками в 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 )