Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2020, 18:08   #1
Betrei
Новичок
Джуниор
 
Регистрация: 28.11.2020
Сообщений: 1
Радость тема на с++

Дан указатель P1 на начало односвязного линейного списка. Преобразовать исходную (односвязную) цепочку в двусвязную, в которой каждый
элемент связан с последующим элементом (с помощью поля Next), и с
предыдущим (с помощью поля Prev). Поле Prev первого элемента
положить равным NULL. Вывести на экран преобразованную цепочку в
обратном порядке.
Код:
#include <iostream>
 
struct node
{
    int val{};
    node* next{};
    node* prev{};
};
 
node* push_forward_list(node* head, int val)
{
    return new node{ val, head };
}
 
node* convert_to_double_linked(node* head)
{
    while (head->next)
    {
        head->next->prev = head;
        head = head->next;
    }
    return head;
}
 
void fprint(node* head)
{
    while (head)
    {
        std::cout << head->val << ' ';
        head = head->next;
    }
    std::cout << std::endl;
}
 
void rprint(node* tail)
{
    while (tail)
    {
        std::cout << tail->val << ' ';
        tail = tail->prev;
    }
    std::cout << std::endl;
}
 
void clear(node*& head, node*& tail)
{
    while (head)
    {
        node* to_del = head;
        head = head->next;
        delete to_del;
    }
    if (tail) tail = head;
}
 
int main()
{
    node* head{};
    for (int i = 10; i; --i)
        head = push_forward_list(head, i);
    fprint(head);
    node* tail = convert_to_double_linked(head);
    rprint(tail);
    clear(head, tail);
    return 0;
}
Betrei вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Технико экономическая тема, ответ министру экономразвития и наша любимая тема про скоростные поезда ) ВСМ ) Alar Свободное общение 18 25.06.2019 21:38
Тема-агрегатор юмора (это служебная тема, не обращайте на неё внимания) Вадим Мошев Свободное общение 0 27.01.2016 14:59