макс элемент нашел, а как переприсвоить не знаю
void List::Zamena() {
element *max = Head;
element *temp = Head;
max = temp->x;
while (temp != NULL) {
if (max->x < temp->x) {
max = temp;
temp = temp->Next;
}
}
}
Ну начнем с того, что максимальный элемент вы находите неправильно.
Далее, кроме максимального, нужно еще найти элемент, стоящий перед максимальным
void List::Zamena() {
// Если список пустой, то выходим
if (Head == NULL)
return;
element *max = Head;
element *temp = Head;
element *prev = NULL;
element *prevMax = prev;
while (temp != NULL) {
// Если нашли элемент больший, чем текущий максимальный
if (max->x < temp->x) {
// то переприсваиваем максимальный и предыдущий перед максимальным
max = temp;
prevMax = prev;
}
// В любом случае переходим на следующий элемент
prev = temp;
temp = temp->Next;
}
// Если максимальный элемент первый, то выходим
if (max == Head)
return;
// Элемент перед максимальным указывает на первый элемент
prevMax->next = Head;
// сохраняем второй элеммент
temp = Head->next;
// бывший первый элемент указывает на элемент за максимальным
Head->next = max->next;
// максимальный элемент указывает на сохраненный второй
max->next = temp;
// первый элемент стал максимальным
Head = max;
}
Если же нужно поменять только значения узлов, ко код сильно упрощается
void List::Zamena() {
// Если список пустой, то выходим
if (Head == NULL)
return;
element *max = Head;
element *temp = Head;
while (temp != NULL) {
// Если нашли элемент больший, чем текущий максимальный
if (max->x < temp->x) {
// то переприсваиваем максимальный
max = temp;
}
// В любом случае переходим на следующий элемент
temp = temp->Next;
}
// Если максимальный элемент первый, то выходим
if (max == Head)
return;
// сохраняем значение первого элемента
int tempX = Head->x;
// присваиваем первому элементу значение из максимального
Head->x = max->x;
// присваиваем максимальному элементу сохраненное значение из первого
max->x = tempX;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
//Из текстового файла вводится символьная строка, состоящая из чисел, //разделенных пробеломСоставить программу, которая вводит строку, организует...
Нужно с использованием библиотеки yamlh написать код для сравнения yaml файлов
Всем приветЯ пробую создать и подключить свою DLL