Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Elem {
- long long value;
- Elem *next;
- Elem *prev;
- };
- class List
- {
- Elem *begin;
- Elem *first;
- public:
- List() {
- begin = NULL;
- first = NULL;
- }
- ~List() {
- Elem *pt;
- while (first != NULL) {
- pt = first;
- first = first->next;
- delete pt;
- }
- }
- void push(long long value) {
- Elem *pt = new Elem;
- pt->value = value;
- pt->next = NULL;
- if (begin == NULL)
- begin = pt;
- begin->next = pt;
- if (first == NULL)
- first = begin;
- Elem *tmp = new Elem;
- tmp = begin;
- begin = begin->next;
- begin->prev = tmp;
- }
- long long pop() {
- if (!first)
- return -1;
- Elem *pt = first;
- int value = pt->value;
- first = pt->next;
- delete pt;
- return value;
- }
- void add(long long value, int num) {
- begin = first;
- for (int i = 0; !empty(); begin = begin->next, i++) {
- if (i == num-2) {
- Elem *tmp = new Elem;
- tmp = begin->next;
- begin->next = NULL;
- push(value);
- begin->next = tmp;
- return;
- }
- }
- }
- bool empty() {
- if (first == NULL)
- return true;
- else
- return false;
- }
- };
- int main() {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- long long tmp, arr[100000];
- int i;
- List list;
- for (i = 0; cin >> tmp; i++) {
- arr[i] = tmp;
- }
- for (int l = 0; l < i - 2; l++) {
- list.push(arr[l]);
- }
- list.add(arr[i-2], arr[i-1]);
- while (!list.empty())
- cout << list.pop() << " ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement