Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using std::cin;
- using std::cout;
- struct Node {
- int data;
- Node *next, *prev;
- };
- Node* create(int _data) {
- Node *t = new Node();
- t->data = _data;
- t->prev = t->next = nullptr;
- return t;
- }
- struct LinkedList {
- Node *head, *tail; // Указатель на начало и конец
- int size; // Количество элементов
- };
- // Базовая инициализация
- void init(LinkedList &list) {
- list.head = list.tail = nullptr;
- list.size = 0;
- }
- // Добавить элемент в конец списка
- void add_back(LinkedList &list, Node *added) {
- if (list.size) {
- list.tail->next = added;
- added->prev = list.tail;
- list.tail = added;
- list.size++;
- } else {
- list.head = list.tail = added;
- list.size = 1;
- }
- }
- // Вывести все элементы списка
- void print(LinkedList &list) {
- Node *cur = list.head;
- // cout << list.size << ": ";
- for(int i = 0; i < list.size; ++i) {
- cout << cur->data << ' ';
- cur = cur->next;
- }
- cout << std::endl;
- }
- #include "func.h"
- int main() {
- int n, a; cin >> n;
- LinkedList list; init(list);
- for (int i = 0; i < n; ++i) {
- cin >> a;
- add_back(list, create(a));
- }
- int k; cin >> k;
- shift(list, k);
- print(list);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement