#include <iostream>
struct node {
// значение в ячейке
double value;
// указатель на след ячейку
node *next = nullptr;
// указатель на пред ячейку
node *prev = nullptr;
};
int main() {
// временный указатель
node* tip;
// здесь мы будем хранить начало
node* start;
// здесь будем хранить конец
node* end;
// создаем новую ячейку
tip = new node{10};
// запоминаем начало
start = tip;
// создаем ещё одну ячейку
tip->next = new node{20};
tip->next->prev = tip;
tip = tip->next;
// ещё одну
tip->next = new node{30};
tip->next->prev = tip;
end = tip->next;
// можно пройти из начала в конец
for(node *i = start; i; i = i->next)
std::cout << i->value << '\n';
// можно пройти из конца в начало
for(node *i = end; i; i = i->prev)
std::cout << i->value << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IG5vZGUgewoJLy8g0LfQvdCw0YfQtdC90LjQtSDQsiDRj9GH0LXQudC60LUKCWRvdWJsZSB2YWx1ZTsKCS8vINGD0LrQsNC30LDRgtC10LvRjCDQvdCwINGB0LvQtdC0INGP0YfQtdC50LrRgwoJbm9kZSAqbmV4dCA9IG51bGxwdHI7CgkvLyDRg9C60LDQt9Cw0YLQtdC70Ywg0L3QsCDQv9GA0LXQtCDRj9GH0LXQudC60YMKCW5vZGUgKnByZXYgPSBudWxscHRyOwp9OwoKaW50IG1haW4oKSB7CgkvLyDQstGA0LXQvNC10L3QvdGL0Lkg0YPQutCw0LfQsNGC0LXQu9GMCglub2RlKiB0aXA7CgkvLyDQt9C00LXRgdGMINC80Ysg0LHRg9C00LXQvCDRhdGA0LDQvdC40YLRjCDQvdCw0YfQsNC70L4KCW5vZGUqIHN0YXJ0OwoJLy8g0LfQtNC10YHRjCDQsdGD0LTQtdC8INGF0YDQsNC90LjRgtGMINC60L7QvdC10YYKCW5vZGUqIGVuZDsKCS8vINGB0L7Qt9C00LDQtdC8INC90L7QstGD0Y4g0Y/Rh9C10LnQutGDCgl0aXAgPSBuZXcgbm9kZXsxMH07CgkvLyDQt9Cw0L/QvtC80LjQvdCw0LXQvCDQvdCw0YfQsNC70L4KCXN0YXJ0ID0gdGlwOwoJLy8g0YHQvtC30LTQsNC10Lwg0LXRidGRINC+0LTQvdGDINGP0YfQtdC50LrRgwoJdGlwLT5uZXh0ID0gbmV3IG5vZGV7MjB9OwoJdGlwLT5uZXh0LT5wcmV2ID0gdGlwOwoJdGlwID0gdGlwLT5uZXh0OwoJLy8g0LXRidGRINC+0LTQvdGDCgl0aXAtPm5leHQgPSBuZXcgbm9kZXszMH07Cgl0aXAtPm5leHQtPnByZXYgPSB0aXA7CgllbmQgPSB0aXAtPm5leHQ7CgoJLy8g0LzQvtC20L3QviDQv9GA0L7QudGC0Lgg0LjQtyDQvdCw0YfQsNC70LAg0LIg0LrQvtC90LXRhgoJZm9yKG5vZGUgKmkgPSBzdGFydDsgaTsgaSA9IGktPm5leHQpCgkJc3RkOjpjb3V0IDw8IGktPnZhbHVlIDw8ICdcbic7CgoJLy8g0LzQvtC20L3QviDQv9GA0L7QudGC0Lgg0LjQtyDQutC+0L3RhtCwINCyINC90LDRh9Cw0LvQvgoJZm9yKG5vZGUgKmkgPSBlbmQ7IGk7IGkgPSBpLT5wcmV2KQoJCXN0ZDo6Y291dCA8PCBpLT52YWx1ZSA8PCAnXG4nOwp9Cg==