Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 11.04.2021
Сообщений: 40

Обратный порядок в односвязном списке

01.05.2021, 23:42. Показов 1727. Ответов 2

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста.
не могу понять каким образом я могу переписать в обратном порядке все элементы списка, кроме первого и последнего.
у меня получилось не затрагивать первый элемент, а с последним беда

вот часть кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void reverse(){
  if (first->next == NULL) return;
  
    Node *curr, *next, *prev = NULL;
    curr = first->next;
    
 
  while(curr){
    next = curr->next;
    curr->next = prev;
    prev = curr;
    curr = next;
  }
 
  first->next = prev;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.05.2021, 23:42
Ответы с готовыми решениями:

Порядок отрицательных членов изменить на обратный, порядок неотрицательных сохранить
Задача (нужно все 3 пункта в 1 программе сделать) Прошу Помочь В условиях задания 3 а) порядок отрицательных членов изменить на...

Поиск в односвязном списке
Добрый всем день. Знаю что тема неоднократно поднималась. Помогите реализовать поиск по односвязному списку. Сильно не пинайте, я только...

Ошибка в односвязном списке
#include<iostream> #include<clocale> using namespace std; #define DEBUG class Monom{ protected: int...

2
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
02.05.2021, 03:23
stani13,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    void reverse()
    {
        // не преобразовываем пустой список, и списки с 1, 2 или 3 узлами
        if (!first || !first->next || !first->next->next || !first->next->next->next)
            return;
 
        Node *curr, *next, *prev = NULL;
        curr = first->next;
 
        Node *last = first;
        while (last->next)             // ищем последний элемент
            last = last->next;
        Node *tmpLast = first->next;   // этот узел станет предпоследним в преобразованном списке
 
        while (curr != last)
        {
            next = curr->next;
            curr->next = prev;
            prev = curr;
            curr = next;
        }
        tmpLast->next = last;          // за предпоследним узлом следует последний
 
        first->next = prev;
    }
2
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
02.05.2021, 10:51
Цитата Сообщение от stani13 Посмотреть сообщение
не могу понять каким образом я могу переписать в обратном порядке все элементы списка, кроме первого и последнего.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void reverse()
{
    if (!first || !first->next || !first->next->next) 
        return;
    
    auto *last = first->next;
    auto *p = first->next;
    while (p->next)
    {
        auto *next = p->next;
        
        p->next = first->next;
        first->next = p;
 
        p = next;
    }
 
    last->next = p;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.05.2021, 10:51
Помогаю со студенческими работами здесь

Ошибка в односвязном списке
#include "exception.cpp" template <class item> class List { struct Element { item inf; Element *next; Element(item...

Конструктор в односвязном списке
В общем, я только начинаю разбираться в программировании, и у меня возник такой вопрос: как работает конструктор, а именно мне нужно...

Ошибка в односвязном списке
Помогите решить эти 2 проблемы C4101: NextNode: неиспользованная локальная переменная (в 118 строке) C4703: используется потенциально...

Remove_at() в односвязном списке
Привет. Не пойму как в данном(рабочем) коде, при удалении элемента посреди списка, предыдущему элементу дается указатель на следующий (то...

Реализация сортировки в односвязном списке
#include "stdafx.h" #include <iostream> #include <string> using namespace std; /* * односвязный список * реализация ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru