#include <iostream>
using namespace std;
class Node {
public:
int value;
Node* next;
Node(int a) {
value = a;
next = nullptr;
}
};
class ForwardList {
public:
Node* head;
Node* tail; // последний элемент
ForwardList() {
head = nullptr;
tail = nullptr;
}
void push_front(int value) {
Node* node = new Node(value);
node->next = head;
head = node;
if (tail == nullptr) {
tail = node;
}
}
void push_back(int value) {
Node* node = new Node(value);
if (head == nullptr) {
head = node;
}
if (tail != nullptr) {
tail->next = node;
}
tail = node;
}
};
int main() {
ForwardList my_list;
my_list.push_front(2);
my_list.push_front(1);
my_list.push_back(3);
cout << my_list.head->value << ", " << my_list.head->next->value << ", " << my_list.tail->value;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCmNsYXNzIE5vZGUgewoJcHVibGljOgogICAgICAgICBpbnQgdmFsdWU7CiAgICAgICAgIE5vZGUqIG5leHQ7CgogICAgICAgICBOb2RlKGludCBhKSB7CiAgICAgICAgCXZhbHVlID0gYTsKICAgICAgICAgICAgbmV4dCA9IG51bGxwdHI7CiAgICAgICAgIH0KfTsKCgpjbGFzcyBGb3J3YXJkTGlzdCB7CglwdWJsaWM6CgkJTm9kZSogaGVhZDsKCQlOb2RlKiB0YWlsOyAvLyDQv9C+0YHQu9C10LTQvdC40Lkg0Y3Qu9C10LzQtdC90YIKCQkKCQlGb3J3YXJkTGlzdCgpIHsKCQkJaGVhZCA9IG51bGxwdHI7CgkJCXRhaWwgPSBudWxscHRyOwoJCX0KCQkKCQl2b2lkIHB1c2hfZnJvbnQoaW50IHZhbHVlKSB7CgkJCU5vZGUqIG5vZGUgPSBuZXcgTm9kZSh2YWx1ZSk7CgkJCW5vZGUtPm5leHQgPSBoZWFkOwoJCQkKCQkJaGVhZCA9IG5vZGU7CgkJCQoJCQlpZiAodGFpbCA9PSBudWxscHRyKSB7CgkJCQl0YWlsID0gbm9kZTsKCQkJfQoJCX0KCQkKCQl2b2lkIHB1c2hfYmFjayhpbnQgdmFsdWUpIHsKCQkJTm9kZSogbm9kZSA9IG5ldyBOb2RlKHZhbHVlKTsKCQkJCgkJCWlmIChoZWFkID09IG51bGxwdHIpIHsKCQkJCWhlYWQgPSBub2RlOwoJCQl9CgkJCQoJCQlpZiAodGFpbCAhPSBudWxscHRyKSB7CgkJCQl0YWlsLT5uZXh0ID0gbm9kZTsKCQkJfQoJCQkKCQkJdGFpbCA9IG5vZGU7CgkJCQoJCX0KfTsKCgppbnQgbWFpbigpIHsKCUZvcndhcmRMaXN0IG15X2xpc3Q7CglteV9saXN0LnB1c2hfZnJvbnQoMik7CglteV9saXN0LnB1c2hfZnJvbnQoMSk7CglteV9saXN0LnB1c2hfYmFjaygzKTsKCQoJY291dCA8PCBteV9saXN0LmhlYWQtPnZhbHVlIDw8ICIsICIgPDwgbXlfbGlzdC5oZWFkLT5uZXh0LT52YWx1ZSA8PCAiLCAiIDw8IG15X2xpc3QudGFpbC0+dmFsdWU7CgkKfQ==