Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
2 / 2 / 1
Регистрация: 18.04.2017
Сообщений: 48

Двусвязный список: элементы выводятся в обратном порядке

08.01.2019, 13:42. Показов 6190. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал двусвязный список. При выводе его (вызове функции print_list), почему-то значения выводятся с конца в начало, а не наоборот. Скорее всего неправильно написал список, не могли бы помочь? Заранее благодарю.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <ctime>
 
using namespace std;
 
struct point
{
    int data; // поле данных
    struct point *next; // указатель на следующий элемент
    struct point *pred; // указатель на предыдущий элемент
};
 
point* make_point()
{
    point* beg = new(point);//указатель на первый элемент
    cout << "\nЗначение: ";
    cin >> beg->data;//вводим значение информационного поля
    beg->next = 0, beg->pred = 0;
    return beg;//возвращаем beg как результат функции
}
 
point* make_list(int n)
//создание списка
{
    point *p, *beg;
    beg = make_point();//создаем первый элемент
    for (int i = 0; i < n - 1; i++)
    {
        p = make_point();//создаем один элемент
        //добавление элемента в начало списка
        p->next = beg;//связываем р с первым элементом
        beg->pred = p;//связываем первый элемент с p
        beg = p;// p становится первым элементом списка
    }
    return beg;
}
 
void print_list(point* beg)
//печать списка
{
    point* p = beg;//начало списка
    while (p != 0)
    {
        cout << p->data << "\t";
        p = p->next;//переход к следующему элементу
    }
}
 
int main()
{
    setlocale(LC_ALL, "russian");
    srand(time(NULL));
    int n = 0, k = 0;
    point *beg = nullptr;
    do
    {
        cout << "1. Создать двунаправленный массив\n";
        cout << "2. Показать двунаправленный массив\n";
        cout << "3. Выход\n";
        cin >> k;
        switch (k)
        {
        case 1:
            cout << "Введите количество элементов" << endl;
            cin >> n;
            beg = make_list(n);
            cout << endl;
            break;
        case 2:
            print_list(beg);
            cout << endl;
            break;
        }
    } while (k != 3);
    system("pause");
    return 0;
};
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.01.2019, 13:42
Ответы с готовыми решениями:

Двусвязный список, почему не выводит элементы списка в обратном порядке?
Подскажите в чем ошибка, почему не выводит элементы списка в обратном порядке (выводит только один элемент) #include &lt;fstream&gt; ...

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

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

1
 Аватар для analogov net
2532 / 1130 / 494
Регистрация: 17.11.2018
Сообщений: 2,836
08.01.2019, 20:11
Лучший ответ Сообщение было отмечено Edudin97 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void print_list( point* beg )
//печать списка
{
    point* p = beg;//начало списка
    while( beg != NULL && beg->next != NULL )
        beg = beg->next;
 
    while( beg != NULL )
    {
        cout << beg->data << "\t";
        beg = beg->pred;//переход к следующему элементу
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.01.2019, 20:11
Помогаю со студенческими работами здесь

Реализовать вывод последовательности чисел в нужном порядке (двусвязный список)
Всем привет, я написал код который считывает с файла значения и преобразует их в вид, например (Было так: 12 48 29 40 28 49 50 30, а теперь...

Элементы массива выводятся не в нужном порядке
#include &lt;conio.h&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;ctime&gt; using namespace std; int...

Массив. Положительные элементы массива а, записанные в том же порядке + отрицательные элементы массива b, записанные в обратном порядке
Из двух массивов а, а, ...., а и b, b, ....., b, создать следующие массивы: 1. Положительные элементы массива а, записанные в том же...

Вывести на экран список в прямом и обратном порядке
Вывести на экран список в прямом и обратном порядке.с помощью двусвязного списка пожалуйста)))) помогите

Список: как сделать вывод не в обратном порядке а в прямом
Здравствуйте пытаюсь реализовать список, но не понимаю как сделать вывод не в обратном порядке а в прямом?думала что достаточно print2().но...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru