Двусвязный список

компьютеры С++

Как поменять местами 2 элемента , которые ввел пользователь(номер элементов вводит пользователь) с расчетом на то, что head хранит указатель на начало списка tail на конец, список зацикленный

Примечание:
int Replacement(List **head,List **tail)
{
int n,k;
printf("Enter number element for replacement:");
scanf("%d%d",&n,&k);
List *he=*head;
List *he1=*head;
List *ta=*tail;
int i=0;
while(i<n)
he=he->next,i++;
i=0;
while(i<k)
he1=he1->next,i++;
List *tmp;
List *pr,*la;
tmp=he;
pr=he->next;
la=he->last;
he=he1;
he1=tmp;
he->next=he1->next;
he->last=he1->last;
he1->next=pr;
he1->last=la;
}
так не пашет...
Ответы:
Ну по сути тебе надо только значения поменять...
Для неколлизионного списка алгоритм прост...
Ищешь один элемент, запоминая его адрес, потом другой, почле чего значения их через темповую переменную меняешь....


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.